Skip to content

Commit c104a0a

Browse files
committed
C++: Expand QLDoc on 'signatureMatches'.
1 parent 0b4459d commit c104a0a

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,22 @@ private string getSignatureParameterName(string signature, string type, string n
626626
}
627627

628628
/**
629-
* Holds if the `i`'th name in `signature` matches the `i` name in `paramsString(func)`.
629+
* Holds if the suffix containing the entries in `signature` starting at entry
630+
* `i` matches the suffix containing the parameters of `func` starting at entry `i`.
631+
*
632+
* For example, consider the signature `(int,bool,char)` and a function:
633+
* ```
634+
* void f(int a, bool b, char c);
635+
* ```
636+
* 1. The predicate holds for `i = 2` because the suffix containing all the entries
637+
* in `signature` starting at `2` is `char`, and suffix containing all the parameters
638+
* of `func` starting at `2` is `char`.
639+
* 2. The predicate holds for `i = 1` because the suffix containing all the entries
640+
* in `signature` starting at `1` is `bool,char`, and the suffix containing all the
641+
* parameters of `func` starting at `1` is `bool, char`.
642+
* 3. The predicate holds for `i = 0` because the suffix containing all the entries
643+
* in `signature` starting at `0` is `int,bool,char` and the suffix containing all
644+
* the parameters of `func` starting at `0` is `int, bool, char`.
630645
*
631646
* When `paramsString(func)[i]` is `class:n` then the signature name is
632647
* compared with the `n`'th name in `type`, and when `paramsString(func)[i]`

0 commit comments

Comments
 (0)