Merge pull request #18386 from MathiasVP/more-robust-param-name-matching

C++: Resolve `typedef`s when matching MaD parameters
This commit is contained in:
Mathias Vorreiter Pedersen
2025-01-06 14:40:17 +00:00
committed by GitHub
6 changed files with 313 additions and 14 deletions

View File

@@ -479,15 +479,87 @@ private Function getFullyTemplatedFunction(Function f) {
)
}
/** Prefixes `const` to `s` if `t` is const, or returns `s` otherwise. */
bindingset[s, t]
private string withConst(string s, Type t) {
if t.isConst() then result = "const " + s else result = s
}
/** Prefixes `volatile` to `s` if `t` is const, or returns `s` otherwise. */
bindingset[s, t]
private string withVolatile(string s, Type t) {
if t.isVolatile() then result = "volatile " + s else result = s
}
/**
* Gets the type name of the `n`'th parameter of `f` without any template
* arguments.
* Returns `s` prefixed with appropriate specifiers from `t`, or `s` if `t` has
* no relevant specifiers.
*/
bindingset[s, t]
private string withSpecifiers(string s, Type t) {
// An `int` that is both const and volatile will be printed as
// `const volatile int` to match the behavior of `Type.getName` which
// is generated by the extractor.
result = withConst(withVolatile(s, t), t)
}
/**
* Gets the string version of `t`, after resolving typedefs. The boolean `needsSpace` is `true`
* if a space should be appended before concatenating any additional symbols
* (such as `*` or `&`) when recursively constructing the type name.
*/
private string getTypeName(Type t, boolean needsSpace) {
// We don't care about template instantiations since we always base models
// on the uninstantiated templates
not t.isFromTemplateInstantiation(_) and
(
exists(DerivedType dt, string s, boolean needsSpace0 |
dt = t and s = withSpecifiers(getTypeName(dt.getBaseType(), needsSpace0), dt)
|
dt instanceof ReferenceType and
not dt instanceof RValueReferenceType and
needsSpace = false and
(if needsSpace0 = true then result = s + " &" else result = s + "&")
or
dt instanceof RValueReferenceType and
needsSpace = false and
(if needsSpace0 = true then result = s + " &&" else result = s + "&&")
or
dt instanceof PointerType and
needsSpace = false and
(if needsSpace0 = true then result = s + " *" else result = s + "*")
or
not dt instanceof ReferenceType and
not dt instanceof PointerType and
result = s and
needsSpace = needsSpace0
)
or
not t instanceof DerivedType and
not t instanceof TypedefType and
result = t.getName() and
(if result.matches(["%*", "%&", "%]"]) then needsSpace = false else needsSpace = true)
)
or
result = getTypeName(t.(TypedefType).getBaseType(), needsSpace)
}
/**
* Gets a type name for the `n`'th parameter of `f` without any template
* arguments. The result may be a string representing a type for which the
* typedefs have been resolved.
*/
bindingset[f]
pragma[inline_late]
string getParameterTypeWithoutTemplateArguments(Function f, int n) {
exists(string s, string base, string specifiers |
s = f.getParameter(n).getType().getName() and
exists(string s, string base, string specifiers, Type t |
t = f.getParameter(n).getType() and
// The name of the string can either be the possibly typedefed name
// or an alternative name where typedefs has been resolved.
// `getTypeName(t, _)` is almost equal to `t.resolveTypedefs().getName()`,
// except that `t.resolveTypedefs()` doesn't have a result when the
// resulting type doesn't appear in the database.
s = [t.getName(), getTypeName(t, _)] and
parseAngles(s, base, _, specifiers) and
result = base + specifiers
)
@@ -902,18 +974,19 @@ private Element interpretElement0(
)
}
/** Gets the source/sink/summary element corresponding to the supplied parameters. */
Element interpretElement(
string namespace, string type, boolean subtypes, string name, string signature, string ext
) {
elementSpec(namespace, type, subtypes, name, signature, ext) and
exists(Element e | e = interpretElement0(namespace, type, subtypes, name, signature) |
ext = "" and result = e
)
}
cached
private module Cached {
/** Gets the source/sink/summary element corresponding to the supplied parameters. */
cached
Element interpretElement(
string namespace, string type, boolean subtypes, string name, string signature, string ext
) {
elementSpec(namespace, type, subtypes, name, signature, ext) and
exists(Element e | e = interpretElement0(namespace, type, subtypes, name, signature) |
ext = "" and result = e
)
}
/**
* Holds if `node` is specified as a source with the given kind in a CSV flow
* model.

View File

@@ -74,3 +74,5 @@
| tests.cpp:436:6:436:25 | [summary] to write: Argument[1] in madCallArg0WithValue | PostUpdateNode | madCallArg0WithValue | madCallArg0WithValue |
| tests.cpp:437:5:437:36 | [summary param] 1 in madCallReturnValueIgnoreFunction | ParameterNode | madCallReturnValueIgnoreFunction | madCallReturnValueIgnoreFunction |
| tests.cpp:437:5:437:36 | [summary] to write: ReturnValue in madCallReturnValueIgnoreFunction | ReturnNode | madCallReturnValueIgnoreFunction | madCallReturnValueIgnoreFunction |
| tests.cpp:459:5:459:31 | [summary param] *0 in parameter_ref_to_return_ref | ParameterNode | parameter_ref_to_return_ref | parameter_ref_to_return_ref |
| tests.cpp:459:5:459:31 | [summary] to write: ReturnValue[*] in parameter_ref_to_return_ref | ReturnNode | parameter_ref_to_return_ref | parameter_ref_to_return_ref |

View File

@@ -29,6 +29,7 @@ summarizedCallables
| tests.cpp:435:9:435:38 | madCallArg0ReturnToReturnFirst |
| tests.cpp:436:6:436:25 | madCallArg0WithValue |
| tests.cpp:437:5:437:36 | madCallReturnValueIgnoreFunction |
| tests.cpp:459:5:459:31 | parameter_ref_to_return_ref |
sourceCallables
| tests.cpp:3:5:3:10 | source |
| tests.cpp:4:6:4:14 | sourcePtr |
@@ -218,3 +219,14 @@ sourceCallables
| tests.cpp:441:6:441:17 | dontUseValue |
| tests.cpp:441:23:441:23 | x |
| tests.cpp:443:6:443:27 | test_function_pointers |
| tests.cpp:456:19:456:19 | X |
| tests.cpp:457:8:457:35 | StructWithTypedefInParameter<X> |
| tests.cpp:457:8:457:35 | StructWithTypedefInParameter<int> |
| tests.cpp:458:12:458:15 | Type |
| tests.cpp:459:5:459:31 | parameter_ref_to_return_ref |
| tests.cpp:459:45:459:45 | x |
| tests.cpp:459:45:459:45 | x |
| tests.cpp:462:6:462:37 | test_parameter_ref_to_return_ref |
| tests.cpp:463:6:463:6 | x |
| tests.cpp:464:36:464:36 | s |
| tests.cpp:465:6:465:6 | y |

View File

@@ -98,6 +98,7 @@ private class TestSummaries extends SummaryModelCsv {
";;false;madCallArg0ReturnToReturnFirst;;;Argument[0].ReturnValue;ReturnValue.Field[first];value",
";;false;madCallArg0WithValue;;;Argument[1];Argument[0].Parameter[0];value",
";;false;madCallReturnValueIgnoreFunction;;;Argument[1];ReturnValue;value",
";StructWithTypedefInParameter<T>;true;parameter_ref_to_return_ref;(const T &);;Argument[*0];ReturnValue[*];value"
]
}
}

View File

@@ -452,3 +452,16 @@ void test_function_pointers() {
madCallReturnValueIgnoreFunction(&sink, source());
sink(madCallReturnValueIgnoreFunction(&dontUseValue, source())); // $ ir
}
template<typename X>
struct StructWithTypedefInParameter {
typedef X Type;
X& parameter_ref_to_return_ref(const Type& x); // $ interpretElement
};
void test_parameter_ref_to_return_ref() {
int x = source();
StructWithTypedefInParameter<int> s;
int y = s.parameter_ref_to_return_ref(x);
sink(y); // $ ir
}

View File

@@ -37,6 +37,7 @@ signatureMatches
| atl.cpp:424:11:424:16 | Append | (const XCHAR *,int) | CStringT | CStringT | 1 |
| atl.cpp:424:11:424:16 | Append | (const YCHAR *,int) | CStringT | CStringT | 1 |
| atl.cpp:424:11:424:16 | Append | (wchar_t,int) | CStringT | CStringT | 1 |
| atl.cpp:425:11:425:20 | AppendBSTR | (wchar_t *) | CStringT | CStringT | 0 |
| atl.cpp:426:11:426:21 | AppendBytes | (LPCOLESTR,int) | CComBSTR | Append | 1 |
| atl.cpp:426:11:426:21 | AppendBytes | (char,int) | CStringT | CStringT | 1 |
| atl.cpp:426:11:426:21 | AppendBytes | (const XCHAR *,int) | CStringT | CStringT | 1 |
@@ -45,6 +46,7 @@ signatureMatches
| atl.cpp:427:11:427:21 | ArrayToBSTR | (const SAFEARRAY *) | CComSafeArray | Add | 0 |
| atl.cpp:427:11:427:21 | ArrayToBSTR | (const SAFEARRAY *) | CComSafeArray | CComSafeArray | 0 |
| atl.cpp:427:11:427:21 | ArrayToBSTR | (const SAFEARRAY *) | CComSafeArray | operator= | 0 |
| atl.cpp:429:8:429:13 | Attach | (wchar_t *) | CStringT | CStringT | 0 |
| atl.cpp:439:8:439:17 | LoadString | (HINSTANCE,UINT) | CComBSTR | LoadString | 0 |
| atl.cpp:439:8:439:17 | LoadString | (HINSTANCE,UINT) | CComBSTR | LoadString | 1 |
| atl.cpp:440:8:440:17 | LoadString | (UINT) | CComBSTR | LoadString | 0 |
@@ -160,6 +162,7 @@ signatureMatches
| atl.cpp:928:15:928:33 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 1 |
| atl.cpp:928:15:928:33 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 |
| atl.cpp:937:8:937:12 | SetAt | (XCHAR,XCHAR) | CStringT | Replace | 1 |
| atl.cpp:937:8:937:12 | SetAt | (const CStringT &,char) | | operator+ | 1 |
| atl.cpp:937:8:937:12 | SetAt | (int,XCHAR) | CStringT | Insert | 0 |
| atl.cpp:937:8:937:12 | SetAt | (int,XCHAR) | CStringT | Insert | 1 |
| atl.cpp:938:8:938:16 | SetString | (LPCOLESTR,int) | CComBSTR | Append | 1 |
@@ -526,6 +529,14 @@ signatureMatches
| stl.h:557:33:557:35 | set | (InputIt,InputIt) | vector | assign<InputIt> | 1 |
| stl.h:569:36:569:47 | emplace_hint | (format_string,Args &&) | | format<Args> | 1 |
| stl.h:569:36:569:47 | emplace_hint | (format_string,Args &&) | | format<Args> | 1 |
| stl.h:573:12:573:17 | insert | (const_iterator,T &&) | deque<T> | insert | 0 |
| stl.h:573:12:573:17 | insert | (const_iterator,T &&) | deque<T> | insert | 1 |
| stl.h:573:12:573:17 | insert | (const_iterator,T &&) | forward_list<T> | insert_after | 0 |
| stl.h:573:12:573:17 | insert | (const_iterator,T &&) | forward_list<T> | insert_after | 1 |
| stl.h:573:12:573:17 | insert | (const_iterator,T &&) | list<T> | insert | 0 |
| stl.h:573:12:573:17 | insert | (const_iterator,T &&) | list<T> | insert | 1 |
| stl.h:573:12:573:17 | insert | (const_iterator,T &&) | vector<T> | insert | 0 |
| stl.h:573:12:573:17 | insert | (const_iterator,T &&) | vector<T> | insert | 1 |
| stl.h:574:38:574:43 | insert | (InputIt,InputIt) | deque | assign<InputIt> | 0 |
| stl.h:574:38:574:43 | insert | (InputIt,InputIt) | deque | assign<InputIt> | 1 |
| stl.h:574:38:574:43 | insert | (InputIt,InputIt) | forward_list | assign<InputIt> | 0 |
@@ -536,6 +547,14 @@ signatureMatches
| stl.h:574:38:574:43 | insert | (InputIt,InputIt) | vector | assign<InputIt> | 1 |
| stl.h:623:36:623:47 | emplace_hint | (format_string,Args &&) | | format<Args> | 1 |
| stl.h:623:36:623:47 | emplace_hint | (format_string,Args &&) | | format<Args> | 1 |
| stl.h:627:12:627:17 | insert | (const_iterator,T &&) | deque<T> | insert | 0 |
| stl.h:627:12:627:17 | insert | (const_iterator,T &&) | deque<T> | insert | 1 |
| stl.h:627:12:627:17 | insert | (const_iterator,T &&) | forward_list<T> | insert_after | 0 |
| stl.h:627:12:627:17 | insert | (const_iterator,T &&) | forward_list<T> | insert_after | 1 |
| stl.h:627:12:627:17 | insert | (const_iterator,T &&) | list<T> | insert | 0 |
| stl.h:627:12:627:17 | insert | (const_iterator,T &&) | list<T> | insert | 1 |
| stl.h:627:12:627:17 | insert | (const_iterator,T &&) | vector<T> | insert | 0 |
| stl.h:627:12:627:17 | insert | (const_iterator,T &&) | vector<T> | insert | 1 |
| stl.h:628:38:628:43 | insert | (InputIt,InputIt) | deque | assign<InputIt> | 0 |
| stl.h:628:38:628:43 | insert | (InputIt,InputIt) | deque | assign<InputIt> | 1 |
| stl.h:628:38:628:43 | insert | (InputIt,InputIt) | forward_list | assign<InputIt> | 0 |
@@ -894,7 +913,9 @@ getParameterTypeName
| atl.cpp:69:8:69:8 | operator= | 0 | _U_STRINGorID && |
| atl.cpp:69:8:69:8 | operator= | 0 | const _U_STRINGorID & |
| atl.cpp:70:3:70:15 | _U_STRINGorID | 0 | UINT |
| atl.cpp:70:3:70:15 | _U_STRINGorID | 0 | unsigned int |
| atl.cpp:71:3:71:15 | _U_STRINGorID | 0 | LPCTSTR |
| atl.cpp:71:3:71:15 | _U_STRINGorID | 0 | const char * |
| atl.cpp:195:10:195:12 | Add | 0 | INARGTYPclass:0 |
| atl.cpp:197:10:197:15 | Append | 0 | const CAtlArray & |
| atl.cpp:198:8:198:11 | Copy | 0 | const CAtlArray & |
@@ -909,6 +930,8 @@ getParameterTypeName
| atl.cpp:212:6:212:15 | operator[] | 0 | size_t |
| atl.cpp:258:3:258:10 | CAtlList | 0 | UINT |
| atl.cpp:258:3:258:10 | CAtlList | 0 | UINT |
| atl.cpp:258:3:258:10 | CAtlList | 0 | unsigned int |
| atl.cpp:258:3:258:10 | CAtlList | 0 | unsigned int |
| atl.cpp:261:12:261:18 | AddHead | 0 | INARGTYPclass:0 |
| atl.cpp:261:12:261:18 | AddHead | 0 | INARGTYPclass:0 |
| atl.cpp:262:8:262:18 | AddHeadList | 0 | const CAtlList * |
@@ -921,20 +944,30 @@ getParameterTypeName
| atl.cpp:266:12:266:15 | Find | 0 | INARGTYPclass:0 |
| atl.cpp:266:12:266:15 | Find | 1 | POSITION |
| atl.cpp:266:12:266:15 | Find | 1 | POSITION |
| atl.cpp:266:12:266:15 | Find | 1 | __POSITION * |
| atl.cpp:266:12:266:15 | Find | 1 | __POSITION * |
| atl.cpp:267:12:267:20 | FindIndex | 0 | size_t |
| atl.cpp:267:12:267:20 | FindIndex | 0 | size_t |
| atl.cpp:268:6:268:10 | GetAt | 0 | POSITION |
| atl.cpp:268:6:268:10 | GetAt | 0 | POSITION |
| atl.cpp:268:6:268:10 | GetAt | 0 | __POSITION * |
| atl.cpp:268:6:268:10 | GetAt | 0 | __POSITION * |
| atl.cpp:281:12:281:22 | InsertAfter | 0 | POSITION |
| atl.cpp:281:12:281:22 | InsertAfter | 0 | POSITION |
| atl.cpp:281:12:281:22 | InsertAfter | 0 | __POSITION * |
| atl.cpp:281:12:281:22 | InsertAfter | 0 | __POSITION * |
| atl.cpp:281:12:281:22 | InsertAfter | 1 | INARGTYPclass:0 |
| atl.cpp:281:12:281:22 | InsertAfter | 1 | INARGTYPclass:0 |
| atl.cpp:282:12:282:23 | InsertBefore | 0 | POSITION |
| atl.cpp:282:12:282:23 | InsertBefore | 0 | POSITION |
| atl.cpp:282:12:282:23 | InsertBefore | 0 | __POSITION * |
| atl.cpp:282:12:282:23 | InsertBefore | 0 | __POSITION * |
| atl.cpp:282:12:282:23 | InsertBefore | 1 | INARGTYPclass:0 |
| atl.cpp:282:12:282:23 | InsertBefore | 1 | INARGTYPclass:0 |
| atl.cpp:292:8:292:12 | SetAt | 0 | POSITION |
| atl.cpp:292:8:292:12 | SetAt | 0 | POSITION |
| atl.cpp:292:8:292:12 | SetAt | 0 | __POSITION * |
| atl.cpp:292:8:292:12 | SetAt | 0 | __POSITION * |
| atl.cpp:292:8:292:12 | SetAt | 1 | INARGTYPclass:0 |
| atl.cpp:292:8:292:12 | SetAt | 1 | INARGTYPclass:0 |
| atl.cpp:402:8:402:8 | operator= | 0 | IUnknown && |
@@ -948,52 +981,83 @@ getParameterTypeName
| atl.cpp:411:3:411:10 | CComBSTR | 0 | int |
| atl.cpp:412:3:412:10 | CComBSTR | 0 | int |
| atl.cpp:412:3:412:10 | CComBSTR | 1 | LPCOLESTR |
| atl.cpp:412:3:412:10 | CComBSTR | 1 | const wchar_t * |
| atl.cpp:413:3:413:10 | CComBSTR | 0 | int |
| atl.cpp:413:3:413:10 | CComBSTR | 1 | LPCSTR |
| atl.cpp:413:3:413:10 | CComBSTR | 1 | const char * |
| atl.cpp:414:3:414:10 | CComBSTR | 0 | LPCOLESTR |
| atl.cpp:414:3:414:10 | CComBSTR | 0 | const wchar_t * |
| atl.cpp:415:3:415:10 | CComBSTR | 0 | LPCSTR |
| atl.cpp:415:3:415:10 | CComBSTR | 0 | const char * |
| atl.cpp:416:3:416:10 | CComBSTR | 0 | CComBSTR && |
| atl.cpp:419:11:419:16 | Append | 0 | const CComBSTR & |
| atl.cpp:420:11:420:16 | Append | 0 | wchar_t |
| atl.cpp:421:11:421:16 | Append | 0 | char |
| atl.cpp:422:11:422:16 | Append | 0 | LPCOLESTR |
| atl.cpp:422:11:422:16 | Append | 0 | const wchar_t * |
| atl.cpp:423:11:423:16 | Append | 0 | LPCSTR |
| atl.cpp:423:11:423:16 | Append | 0 | const char * |
| atl.cpp:424:11:424:16 | Append | 0 | LPCOLESTR |
| atl.cpp:424:11:424:16 | Append | 0 | const wchar_t * |
| atl.cpp:424:11:424:16 | Append | 1 | int |
| atl.cpp:425:11:425:20 | AppendBSTR | 0 | BSTR |
| atl.cpp:425:11:425:20 | AppendBSTR | 0 | wchar_t * |
| atl.cpp:426:11:426:21 | AppendBytes | 0 | const char * |
| atl.cpp:426:11:426:21 | AppendBytes | 1 | int |
| atl.cpp:427:11:427:21 | ArrayToBSTR | 0 | const SAFEARRAY * |
| atl.cpp:427:11:427:21 | ArrayToBSTR | 0 | const tagSAFEARRAY * |
| atl.cpp:428:11:428:20 | AssignBSTR | 0 | const BSTR |
| atl.cpp:428:11:428:20 | AssignBSTR | 0 | const wchar_t * |
| atl.cpp:429:8:429:13 | Attach | 0 | BSTR |
| atl.cpp:429:8:429:13 | Attach | 0 | wchar_t * |
| atl.cpp:430:11:430:21 | BSTRToArray | 0 | LPSAFEARRAY * |
| atl.cpp:430:11:430:21 | BSTRToArray | 0 | tagSAFEARRAY ** |
| atl.cpp:433:11:433:16 | CopyTo | 0 | BSTR * |
| atl.cpp:433:11:433:16 | CopyTo | 0 | wchar_t ** |
| atl.cpp:435:11:435:16 | CopyTo | 0 | VARIANT * |
| atl.cpp:435:11:435:16 | CopyTo | 0 | tagVARIANT * |
| atl.cpp:439:8:439:17 | LoadString | 0 | HINSTANCE |
| atl.cpp:439:8:439:17 | LoadString | 0 | void * |
| atl.cpp:439:8:439:17 | LoadString | 1 | UINT |
| atl.cpp:439:8:439:17 | LoadString | 1 | unsigned int |
| atl.cpp:440:8:440:17 | LoadString | 0 | UINT |
| atl.cpp:440:8:440:17 | LoadString | 0 | unsigned int |
| atl.cpp:441:11:441:24 | ReadFromStream | 0 | IStream * |
| atl.cpp:443:11:443:23 | WriteToStream | 0 | IStream * |
| atl.cpp:448:13:448:22 | operator+= | 0 | const CComBSTR & |
| atl.cpp:449:13:449:22 | operator+= | 0 | LPCOLESTR |
| atl.cpp:449:13:449:22 | operator+= | 0 | const wchar_t * |
| atl.cpp:539:3:539:15 | CComSafeArray | 0 | const SAFEARRAY * |
| atl.cpp:539:3:539:15 | CComSafeArray | 0 | const tagSAFEARRAY * |
| atl.cpp:543:11:543:13 | Add | 0 | const SAFEARRAY * |
| atl.cpp:543:11:543:13 | Add | 0 | const tagSAFEARRAY * |
| atl.cpp:545:11:545:13 | Add | 0 | const class:0 & |
| atl.cpp:545:11:545:13 | Add | 1 | BOOL |
| atl.cpp:545:11:545:13 | Add | 1 | bool |
| atl.cpp:553:6:553:10 | GetAt | 0 | LONG |
| atl.cpp:553:6:553:10 | GetAt | 0 | long |
| atl.cpp:564:11:564:15 | SetAt | 0 | LONG |
| atl.cpp:564:11:564:15 | SetAt | 0 | long |
| atl.cpp:564:11:564:15 | SetAt | 1 | const class:0 & |
| atl.cpp:564:11:564:15 | SetAt | 2 | BOOL |
| atl.cpp:564:11:564:15 | SetAt | 2 | bool |
| atl.cpp:566:6:566:15 | operator[] | 0 | long |
| atl.cpp:567:6:567:15 | operator[] | 0 | int |
| atl.cpp:611:3:611:8 | CPathT | 0 | PCXSTR |
| atl.cpp:611:3:611:8 | CPathT | 0 | class:0 |
| atl.cpp:612:3:612:8 | CPathT | 0 | const CPathT & |
| atl.cpp:616:8:616:19 | AddExtension | 0 | PCXSTR |
| atl.cpp:616:8:616:19 | AddExtension | 0 | class:0 |
| atl.cpp:617:8:617:13 | Append | 0 | PCXSTR |
| atl.cpp:617:8:617:13 | Append | 0 | class:0 |
| atl.cpp:620:8:620:14 | Combine | 0 | PCXSTR |
| atl.cpp:620:8:620:14 | Combine | 0 | class:0 |
| atl.cpp:620:8:620:14 | Combine | 1 | PCXSTR |
| atl.cpp:620:8:620:14 | Combine | 1 | class:0 |
| atl.cpp:621:22:621:33 | CommonPrefix | 0 | PCXSTR |
| atl.cpp:621:22:621:33 | CommonPrefix | 0 | class:0 |
| atl.cpp:658:23:658:32 | operator+= | 0 | PCXSTR |
| atl.cpp:658:23:658:32 | operator+= | 0 | class:0 |
| atl.cpp:718:8:718:10 | Add | 0 | const class:0 & |
| atl.cpp:719:7:719:10 | Find | 0 | const class:0 & |
| atl.cpp:730:6:730:15 | operator[] | 0 | int |
@@ -1013,57 +1077,87 @@ getParameterTypeName
| atl.cpp:815:9:815:17 | operator= | 0 | const CUrl & |
| atl.cpp:817:3:817:6 | CUrl | 0 | const CUrl & |
| atl.cpp:820:15:820:26 | Canonicalize | 0 | DWORD |
| atl.cpp:820:15:820:26 | Canonicalize | 0 | unsigned long |
| atl.cpp:823:8:823:15 | CrackUrl | 0 | LPCTSTR |
| atl.cpp:823:8:823:15 | CrackUrl | 0 | const char * |
| atl.cpp:823:8:823:15 | CrackUrl | 1 | DWORD |
| atl.cpp:823:8:823:15 | CrackUrl | 1 | unsigned long |
| atl.cpp:824:15:824:23 | CreateUrl | 0 | LPTSTR |
| atl.cpp:824:15:824:23 | CreateUrl | 0 | char * |
| atl.cpp:824:15:824:23 | CreateUrl | 1 | DWORD * |
| atl.cpp:824:15:824:23 | CreateUrl | 1 | unsigned long * |
| atl.cpp:824:15:824:23 | CreateUrl | 2 | DWORD |
| atl.cpp:824:15:824:23 | CreateUrl | 2 | unsigned long |
| atl.cpp:841:15:841:26 | SetExtraInfo | 0 | LPCTSTR |
| atl.cpp:841:15:841:26 | SetExtraInfo | 0 | const char * |
| atl.cpp:842:15:842:25 | SetHostName | 0 | LPCTSTR |
| atl.cpp:842:15:842:25 | SetHostName | 0 | const char * |
| atl.cpp:843:15:843:25 | SetPassword | 0 | LPCTSTR |
| atl.cpp:843:15:843:25 | SetPassword | 0 | const char * |
| atl.cpp:844:15:844:27 | SetPortNumber | 0 | ATL_URL_PORT |
| atl.cpp:844:15:844:27 | SetPortNumber | 0 | unsigned short |
| atl.cpp:845:15:845:23 | SetScheme | 0 | ATL_URL_SCHEME |
| atl.cpp:846:15:846:27 | SetSchemeName | 0 | LPCTSTR |
| atl.cpp:846:15:846:27 | SetSchemeName | 0 | const char * |
| atl.cpp:847:15:847:24 | SetUrlPath | 0 | LPCTSTR |
| atl.cpp:847:15:847:24 | SetUrlPath | 0 | const char * |
| atl.cpp:848:15:848:25 | SetUserName | 0 | LPCTSTR |
| atl.cpp:848:15:848:25 | SetUserName | 0 | const char * |
| atl.cpp:903:8:903:8 | operator= | 0 | IAtlStringMgr && |
| atl.cpp:903:8:903:8 | operator= | 0 | const IAtlStringMgr & |
| atl.cpp:914:3:914:16 | CSimpleStringT | 0 | const XCHAR * |
| atl.cpp:914:3:914:16 | CSimpleStringT | 0 | const char * |
| atl.cpp:914:3:914:16 | CSimpleStringT | 1 | int |
| atl.cpp:914:3:914:16 | CSimpleStringT | 2 | IAtlStringMgr * |
| atl.cpp:915:3:915:16 | CSimpleStringT | 0 | PCXSTR |
| atl.cpp:915:3:915:16 | CSimpleStringT | 0 | const class:0 * |
| atl.cpp:915:3:915:16 | CSimpleStringT | 1 | IAtlStringMgr * |
| atl.cpp:916:3:916:16 | CSimpleStringT | 0 | const CSimpleStringT & |
| atl.cpp:920:8:920:13 | Append | 0 | const CSimpleStringT & |
| atl.cpp:921:8:921:13 | Append | 0 | PCXSTR |
| atl.cpp:921:8:921:13 | Append | 0 | const class:0 * |
| atl.cpp:921:8:921:13 | Append | 1 | int |
| atl.cpp:922:8:922:13 | Append | 0 | PCXSTR |
| atl.cpp:922:8:922:13 | Append | 0 | const class:0 * |
| atl.cpp:926:15:926:23 | CopyChars | 0 | XCHAR * |
| atl.cpp:926:15:926:23 | CopyChars | 0 | char * |
| atl.cpp:926:15:926:23 | CopyChars | 1 | const XCHAR * |
| atl.cpp:926:15:926:23 | CopyChars | 1 | const char * |
| atl.cpp:926:15:926:23 | CopyChars | 2 | int |
| atl.cpp:927:15:927:23 | CopyChars | 0 | XCHAR * |
| atl.cpp:927:15:927:23 | CopyChars | 0 | char * |
| atl.cpp:927:15:927:23 | CopyChars | 1 | size_t |
| atl.cpp:927:15:927:23 | CopyChars | 2 | const XCHAR * |
| atl.cpp:927:15:927:23 | CopyChars | 2 | const char * |
| atl.cpp:927:15:927:23 | CopyChars | 3 | int |
| atl.cpp:928:15:928:33 | CopyCharsOverlapped | 0 | XCHAR * |
| atl.cpp:928:15:928:33 | CopyCharsOverlapped | 0 | char * |
| atl.cpp:928:15:928:33 | CopyCharsOverlapped | 1 | const XCHAR * |
| atl.cpp:928:15:928:33 | CopyCharsOverlapped | 1 | const char * |
| atl.cpp:928:15:928:33 | CopyCharsOverlapped | 2 | int |
| atl.cpp:930:9:930:13 | GetAt | 0 | int |
| atl.cpp:931:9:931:17 | GetBuffer | 0 | int |
| atl.cpp:933:9:933:26 | GetBufferSetLength | 0 | int |
| atl.cpp:937:8:937:12 | SetAt | 0 | int |
| atl.cpp:937:8:937:12 | SetAt | 1 | XCHAR |
| atl.cpp:937:8:937:12 | SetAt | 1 | char |
| atl.cpp:938:8:938:16 | SetString | 0 | PCXSTR |
| atl.cpp:938:8:938:16 | SetString | 0 | const class:0 * |
| atl.cpp:938:8:938:16 | SetString | 1 | int |
| atl.cpp:939:8:939:16 | SetString | 0 | PCXSTR |
| atl.cpp:939:8:939:16 | SetString | 0 | const class:0 * |
| atl.cpp:941:9:941:18 | operator[] | 0 | int |
| atl.cpp:1035:3:1035:10 | CStringT | 0 | const VARIANT & |
| atl.cpp:1035:3:1035:10 | CStringT | 0 | const tagVARIANT & |
| atl.cpp:1036:3:1036:10 | CStringT | 0 | const VARIANT & |
| atl.cpp:1036:3:1036:10 | CStringT | 0 | const tagVARIANT & |
| atl.cpp:1036:3:1036:10 | CStringT | 1 | IAtlStringMgr * |
| atl.cpp:1037:3:1037:10 | CStringT | 0 | const CStringT & |
| atl.cpp:1041:3:1041:10 | CStringT | 0 | LPCSTR |
| atl.cpp:1041:3:1041:10 | CStringT | 0 | const char * |
| atl.cpp:1041:3:1041:10 | CStringT | 1 | IAtlStringMgr * |
| atl.cpp:1042:3:1042:10 | CStringT | 0 | LPCWSTR |
| atl.cpp:1042:3:1042:10 | CStringT | 0 | const wchar_t * |
| atl.cpp:1042:3:1042:10 | CStringT | 1 | IAtlStringMgr * |
| atl.cpp:1044:3:1044:10 | CStringT | 0 | char * |
| atl.cpp:1045:3:1045:10 | CStringT | 0 | unsigned char * |
@@ -1075,36 +1169,46 @@ getParameterTypeName
| atl.cpp:1060:8:1060:19 | AppendFormat | 0 | PCXSTR |
| atl.cpp:1060:8:1060:19 | AppendFormat | 1 | ... |
| atl.cpp:1061:8:1061:19 | AppendFormat | 0 | UINT |
| atl.cpp:1061:8:1061:19 | AppendFormat | 0 | unsigned int |
| atl.cpp:1061:8:1061:19 | AppendFormat | 1 | ... |
| atl.cpp:1069:7:1069:12 | Insert | 0 | int |
| atl.cpp:1069:7:1069:12 | Insert | 1 | PCXSTR |
| atl.cpp:1070:7:1070:12 | Insert | 0 | int |
| atl.cpp:1070:7:1070:12 | Insert | 1 | XCHAR |
| atl.cpp:1070:7:1070:12 | Insert | 1 | class:0 |
| atl.cpp:1071:12:1071:15 | Left | 0 | int |
| atl.cpp:1074:8:1074:17 | LoadString | 0 | UINT |
| atl.cpp:1074:8:1074:17 | LoadString | 0 | unsigned int |
| atl.cpp:1078:12:1078:14 | Mid | 0 | int |
| atl.cpp:1078:12:1078:14 | Mid | 1 | int |
| atl.cpp:1080:7:1080:13 | Replace | 0 | PCXSTR |
| atl.cpp:1080:7:1080:13 | Replace | 1 | PCXSTR |
| atl.cpp:1081:7:1081:13 | Replace | 0 | XCHAR |
| atl.cpp:1081:7:1081:13 | Replace | 0 | class:0 |
| atl.cpp:1081:7:1081:13 | Replace | 1 | XCHAR |
| atl.cpp:1081:7:1081:13 | Replace | 1 | class:0 |
| atl.cpp:1082:12:1082:16 | Right | 0 | int |
| atl.cpp:1083:8:1083:19 | SetSysString | 0 | BSTR * |
| atl.cpp:1083:8:1083:19 | SetSysString | 0 | wchar_t ** |
| atl.cpp:1084:12:1084:24 | SpanExcluding | 0 | PCXSTR |
| atl.cpp:1085:12:1085:24 | SpanIncluding | 0 | PCXSTR |
| atl.cpp:1086:12:1086:19 | Tokenize | 0 | PCXSTR |
| atl.cpp:1086:12:1086:19 | Tokenize | 1 | int & |
| atl.cpp:1087:13:1087:16 | Trim | 0 | XCHAR |
| atl.cpp:1087:13:1087:16 | Trim | 0 | class:0 |
| atl.cpp:1088:13:1088:16 | Trim | 0 | PCXSTR |
| atl.cpp:1090:13:1090:20 | TrimLeft | 0 | XCHAR |
| atl.cpp:1090:13:1090:20 | TrimLeft | 0 | class:0 |
| atl.cpp:1091:13:1091:20 | TrimLeft | 0 | PCXSTR |
| atl.cpp:1093:13:1093:21 | TrimRight | 0 | XCHAR |
| atl.cpp:1093:13:1093:21 | TrimRight | 0 | class:0 |
| atl.cpp:1094:13:1094:21 | TrimRight | 0 | PCXSTR |
| atl.cpp:1214:8:1214:8 | operator= | 0 | CStringData && |
| atl.cpp:1214:8:1214:8 | operator= | 0 | const CStringData & |
| atl.cpp:1230:3:1230:10 | CStrBufT | 0 | StringType & |
| atl.cpp:1230:3:1230:10 | CStrBufT | 1 | int |
| atl.cpp:1230:3:1230:10 | CStrBufT | 2 | DWORD |
| atl.cpp:1230:3:1230:10 | CStrBufT | 2 | unsigned long |
| bsd.cpp:6:8:6:8 | operator= | 0 | const sockaddr & |
| bsd.cpp:6:8:6:8 | operator= | 0 | sockaddr && |
| bsd.cpp:12:5:12:10 | accept | 0 | int |
@@ -1143,6 +1247,7 @@ getParameterTypeName
| format.cpp:3:16:3:16 | operator= | 0 | const FILE & |
| format.cpp:5:5:5:12 | snprintf | 0 | char * |
| format.cpp:5:5:5:12 | snprintf | 1 | size_t |
| format.cpp:5:5:5:12 | snprintf | 1 | unsigned long |
| format.cpp:5:5:5:12 | snprintf | 2 | const char * |
| format.cpp:5:5:5:12 | snprintf | 3 | ... |
| format.cpp:6:5:6:11 | sprintf | 0 | char * |
@@ -1150,14 +1255,18 @@ getParameterTypeName
| format.cpp:6:5:6:11 | sprintf | 2 | ... |
| format.cpp:7:5:7:12 | swprintf | 0 | wchar_t * |
| format.cpp:7:5:7:12 | swprintf | 1 | size_t |
| format.cpp:7:5:7:12 | swprintf | 1 | unsigned long |
| format.cpp:7:5:7:12 | swprintf | 2 | const wchar_t * |
| format.cpp:7:5:7:12 | swprintf | 3 | ... |
| format.cpp:14:5:14:13 | vsnprintf | 0 | char * |
| format.cpp:14:5:14:13 | vsnprintf | 1 | size_t |
| format.cpp:14:5:14:13 | vsnprintf | 1 | unsigned long |
| format.cpp:14:5:14:13 | vsnprintf | 2 | const char * |
| format.cpp:14:5:14:13 | vsnprintf | 3 | va_list |
| format.cpp:14:5:14:13 | vsnprintf | 3 | void * |
| format.cpp:16:5:16:13 | mysprintf | 0 | char * |
| format.cpp:16:5:16:13 | mysprintf | 1 | size_t |
| format.cpp:16:5:16:13 | mysprintf | 1 | unsigned long |
| format.cpp:16:5:16:13 | mysprintf | 2 | const char * |
| format.cpp:16:5:16:13 | mysprintf | 3 | ... |
| format.cpp:28:5:28:10 | sscanf | 0 | const char * |
@@ -1243,6 +1352,10 @@ getParameterTypeName
| stl.h:29:34:29:40 | forward | 0 | remove_reference_t & |
| stl.h:29:34:29:40 | forward | 0 | remove_reference_t & |
| stl.h:29:34:29:40 | forward | 0 | remove_reference_t & |
| stl.h:29:34:29:40 | forward | 0 | type & |
| stl.h:29:34:29:40 | forward | 0 | type & |
| stl.h:29:34:29:40 | forward | 0 | type & |
| stl.h:29:34:29:40 | forward | 0 | type & |
| stl.h:49:3:49:10 | iterator | 0 | const iterator & |
| stl.h:49:3:49:10 | iterator | 0 | const iterator & |
| stl.h:49:3:49:10 | iterator | 0 | const iterator & |
@@ -1341,18 +1454,31 @@ getParameterTypeName
| stl.h:199:94:199:102 | operator+ | 1 | const func:0 * |
| stl.h:214:33:214:42 | operator>> | 0 | int & |
| stl.h:217:33:217:35 | get | 0 | char_type & |
| stl.h:217:33:217:35 | get | 0 | class:0 & |
| stl.h:218:33:218:35 | get | 0 | char_type * |
| stl.h:218:33:218:35 | get | 0 | class:0 * |
| stl.h:218:33:218:35 | get | 1 | streamsize |
| stl.h:218:33:218:35 | get | 1 | unsigned long |
| stl.h:220:33:220:36 | read | 0 | char_type * |
| stl.h:220:33:220:36 | read | 0 | class:0 * |
| stl.h:220:33:220:36 | read | 1 | streamsize |
| stl.h:220:33:220:36 | read | 1 | unsigned long |
| stl.h:221:14:221:21 | readsome | 0 | char_type * |
| stl.h:221:14:221:21 | readsome | 0 | class:0 * |
| stl.h:221:14:221:21 | readsome | 1 | streamsize |
| stl.h:221:14:221:21 | readsome | 1 | unsigned long |
| stl.h:222:33:222:39 | putback | 0 | char_type |
| stl.h:222:33:222:39 | putback | 0 | class:0 |
| stl.h:225:32:225:38 | getline | 0 | char_type * |
| stl.h:225:32:225:38 | getline | 0 | class:0 * |
| stl.h:225:32:225:38 | getline | 1 | streamsize |
| stl.h:225:32:225:38 | getline | 1 | unsigned long |
| stl.h:226:32:226:38 | getline | 0 | char_type * |
| stl.h:226:32:226:38 | getline | 0 | class:0 * |
| stl.h:226:32:226:38 | getline | 1 | streamsize |
| stl.h:226:32:226:38 | getline | 1 | unsigned long |
| stl.h:226:32:226:38 | getline | 2 | char_type |
| stl.h:226:32:226:38 | getline | 2 | class:0 |
| stl.h:229:68:229:77 | operator>> | 0 | basic_istream & |
| stl.h:229:68:229:77 | operator>> | 1 | func:0 * |
| stl.h:230:85:230:94 | operator>> | 0 | basic_istream & |
@@ -1364,8 +1490,11 @@ getParameterTypeName
| stl.h:233:84:233:90 | getline | 1 | basic_string & |
| stl.h:240:33:240:42 | operator<< | 0 | int |
| stl.h:242:33:242:35 | put | 0 | char_type |
| stl.h:242:33:242:35 | put | 0 | class:0 |
| stl.h:243:33:243:37 | write | 0 | const char_type * |
| stl.h:243:33:243:37 | write | 0 | const class:0 * |
| stl.h:243:33:243:37 | write | 1 | streamsize |
| stl.h:243:33:243:37 | write | 1 | unsigned long |
| stl.h:247:67:247:76 | operator<< | 0 | basic_ostream & |
| stl.h:247:67:247:76 | operator<< | 1 | const func:0 * |
| stl.h:248:85:248:94 | operator<< | 0 | basic_ostream & |
@@ -1383,11 +1512,16 @@ getParameterTypeName
| stl.h:294:12:294:17 | vector | 0 | size_type |
| stl.h:294:12:294:17 | vector | 0 | size_type |
| stl.h:294:12:294:17 | vector | 0 | size_type |
| stl.h:294:12:294:17 | vector | 0 | unsigned int |
| stl.h:294:12:294:17 | vector | 0 | unsigned int |
| stl.h:294:12:294:17 | vector | 0 | unsigned int |
| stl.h:294:12:294:17 | vector | 1 | const class:1 & |
| stl.h:294:12:294:17 | vector | 1 | const class:1 & |
| stl.h:294:12:294:17 | vector | 1 | const class:1 & |
| stl.h:295:3:295:8 | vector | 0 | size_type |
| stl.h:295:3:295:8 | vector | 0 | size_type |
| stl.h:295:3:295:8 | vector | 0 | unsigned int |
| stl.h:295:3:295:8 | vector | 0 | unsigned int |
| stl.h:295:3:295:8 | vector | 1 | const class:0 & |
| stl.h:295:3:295:8 | vector | 1 | const class:0 & |
| stl.h:295:3:295:8 | vector | 2 | const class:1 & |
@@ -1402,6 +1536,9 @@ getParameterTypeName
| stl.h:306:8:306:13 | assign | 0 | size_type |
| stl.h:306:8:306:13 | assign | 0 | size_type |
| stl.h:306:8:306:13 | assign | 0 | size_type |
| stl.h:306:8:306:13 | assign | 0 | unsigned int |
| stl.h:306:8:306:13 | assign | 0 | unsigned int |
| stl.h:306:8:306:13 | assign | 0 | unsigned int |
| stl.h:306:8:306:13 | assign | 1 | const class:0 & |
| stl.h:306:8:306:13 | assign | 1 | const class:0 & |
| stl.h:306:8:306:13 | assign | 1 | const class:0 & |
@@ -1411,7 +1548,14 @@ getParameterTypeName
| stl.h:315:13:315:22 | operator[] | 0 | size_type |
| stl.h:315:13:315:22 | operator[] | 0 | size_type |
| stl.h:315:13:315:22 | operator[] | 0 | size_type |
| stl.h:315:13:315:22 | operator[] | 0 | unsigned int |
| stl.h:315:13:315:22 | operator[] | 0 | unsigned int |
| stl.h:315:13:315:22 | operator[] | 0 | unsigned int |
| stl.h:315:13:315:22 | operator[] | 0 | unsigned int |
| stl.h:315:13:315:22 | operator[] | 0 | unsigned int |
| stl.h:315:13:315:22 | operator[] | 0 | unsigned int |
| stl.h:318:13:318:14 | at | 0 | size_type |
| stl.h:318:13:318:14 | at | 0 | unsigned int |
| stl.h:327:8:327:16 | push_back | 0 | const class:0 & |
| stl.h:327:8:327:16 | push_back | 0 | const class:0 & |
| stl.h:328:8:328:16 | push_back | 0 | class:0 && |
@@ -1474,8 +1618,11 @@ getParameterTypeName
| stl.h:402:72:402:72 | make_pair | 1 | func:1 && |
| stl.h:422:3:422:5 | map | 0 | const map & |
| stl.h:426:8:426:16 | operator= | 0 | const map & |
| stl.h:435:6:435:15 | operator[] | 0 | class:0 && |
| stl.h:435:6:435:15 | operator[] | 0 | class:0 && |
| stl.h:435:6:435:15 | operator[] | 0 | key_type && |
| stl.h:435:6:435:15 | operator[] | 0 | key_type && |
| stl.h:436:6:436:7 | at | 0 | const class:0 & |
| stl.h:436:6:436:7 | at | 0 | const key_type & |
| stl.h:439:48:439:54 | emplace | 0 | func:0 && |
| stl.h:439:48:439:54 | emplace | 0 | func:0 && |
@@ -1486,33 +1633,46 @@ getParameterTypeName
| stl.h:443:24:443:29 | insert | 0 | value_type && |
| stl.h:445:12:445:17 | insert | 0 | const_iterator |
| stl.h:445:12:445:17 | insert | 1 | value_type && |
| stl.h:448:48:448:58 | try_emplace | 0 | class:0 && |
| stl.h:448:48:448:58 | try_emplace | 0 | class:0 && |
| stl.h:448:48:448:58 | try_emplace | 0 | key_type && |
| stl.h:448:48:448:58 | try_emplace | 0 | key_type && |
| stl.h:448:48:448:58 | try_emplace | 1 | func:0 && |
| stl.h:448:48:448:58 | try_emplace | 1 | func:0 && |
| stl.h:450:36:450:46 | try_emplace | 0 | const_iterator |
| stl.h:450:36:450:46 | try_emplace | 0 | const_iterator |
| stl.h:450:36:450:46 | try_emplace | 1 | class:0 && |
| stl.h:450:36:450:46 | try_emplace | 1 | class:0 && |
| stl.h:450:36:450:46 | try_emplace | 1 | key_type && |
| stl.h:450:36:450:46 | try_emplace | 1 | key_type && |
| stl.h:450:36:450:46 | try_emplace | 2 | func:0 && |
| stl.h:450:36:450:46 | try_emplace | 2 | func:0 && |
| stl.h:452:42:452:57 | insert_or_assign | 0 | class:0 && |
| stl.h:452:42:452:57 | insert_or_assign | 0 | key_type && |
| stl.h:452:42:452:57 | insert_or_assign | 1 | func:0 && |
| stl.h:454:30:454:45 | insert_or_assign | 0 | const_iterator |
| stl.h:454:30:454:45 | insert_or_assign | 1 | class:0 && |
| stl.h:454:30:454:45 | insert_or_assign | 1 | key_type && |
| stl.h:454:30:454:45 | insert_or_assign | 2 | func:0 && |
| stl.h:456:12:456:16 | erase | 0 | iterator |
| stl.h:459:8:459:11 | swap | 0 | map & |
| stl.h:462:27:462:31 | merge | 0 | map & |
| stl.h:465:12:465:15 | find | 0 | const class:0 & |
| stl.h:465:12:465:15 | find | 0 | const key_type & |
| stl.h:468:12:468:22 | lower_bound | 0 | const class:0 & |
| stl.h:468:12:468:22 | lower_bound | 0 | const key_type & |
| stl.h:470:12:470:22 | upper_bound | 0 | const class:0 & |
| stl.h:470:12:470:22 | upper_bound | 0 | const key_type & |
| stl.h:473:28:473:38 | equal_range | 0 | const class:0 & |
| stl.h:473:28:473:38 | equal_range | 0 | const key_type & |
| stl.h:490:3:490:15 | unordered_map | 0 | const unordered_map & |
| stl.h:490:3:490:15 | unordered_map | 0 | const unordered_map & |
| stl.h:494:18:494:26 | operator= | 0 | const unordered_map & |
| stl.h:503:16:503:25 | operator[] | 0 | class:0 && |
| stl.h:503:16:503:25 | operator[] | 0 | class:0 && |
| stl.h:503:16:503:25 | operator[] | 0 | key_type && |
| stl.h:503:16:503:25 | operator[] | 0 | key_type && |
| stl.h:504:16:504:17 | at | 0 | const class:0 & |
| stl.h:504:16:504:17 | at | 0 | const key_type & |
| stl.h:507:48:507:54 | emplace | 0 | func:0 && |
| stl.h:507:48:507:54 | emplace | 0 | func:0 && |
@@ -1526,6 +1686,11 @@ getParameterTypeName
| stl.h:511:24:511:29 | insert | 0 | value_type && |
| stl.h:513:12:513:17 | insert | 0 | const_iterator |
| stl.h:513:12:513:17 | insert | 1 | value_type && |
| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && |
| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && |
| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && |
| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && |
| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && |
| stl.h:516:48:516:58 | try_emplace | 0 | key_type && |
| stl.h:516:48:516:58 | try_emplace | 0 | key_type && |
| stl.h:516:48:516:58 | try_emplace | 0 | key_type && |
@@ -1538,19 +1703,25 @@ getParameterTypeName
| stl.h:516:48:516:58 | try_emplace | 1 | func:0 && |
| stl.h:518:36:518:46 | try_emplace | 0 | const_iterator |
| stl.h:518:36:518:46 | try_emplace | 0 | const_iterator |
| stl.h:518:36:518:46 | try_emplace | 1 | class:0 && |
| stl.h:518:36:518:46 | try_emplace | 1 | class:0 && |
| stl.h:518:36:518:46 | try_emplace | 1 | key_type && |
| stl.h:518:36:518:46 | try_emplace | 1 | key_type && |
| stl.h:518:36:518:46 | try_emplace | 2 | func:0 && |
| stl.h:518:36:518:46 | try_emplace | 2 | func:0 && |
| stl.h:520:42:520:57 | insert_or_assign | 0 | class:0 && |
| stl.h:520:42:520:57 | insert_or_assign | 0 | key_type && |
| stl.h:520:42:520:57 | insert_or_assign | 1 | func:0 && |
| stl.h:522:30:522:45 | insert_or_assign | 0 | const_iterator |
| stl.h:522:30:522:45 | insert_or_assign | 1 | class:0 && |
| stl.h:522:30:522:45 | insert_or_assign | 1 | key_type && |
| stl.h:522:30:522:45 | insert_or_assign | 2 | func:0 && |
| stl.h:524:12:524:16 | erase | 0 | iterator |
| stl.h:527:8:527:11 | swap | 0 | unordered_map & |
| stl.h:530:37:530:41 | merge | 0 | unordered_map & |
| stl.h:533:12:533:15 | find | 0 | const class:0 & |
| stl.h:533:12:533:15 | find | 0 | const key_type & |
| stl.h:536:28:536:38 | equal_range | 0 | const class:0 & |
| stl.h:536:28:536:38 | equal_range | 0 | const key_type & |
| stl.h:555:3:555:5 | set | 0 | const set & |
| stl.h:557:33:557:35 | set | 0 | func:0 |
@@ -1562,22 +1733,29 @@ getParameterTypeName
| stl.h:569:36:569:47 | emplace_hint | 0 | const_iterator |
| stl.h:569:36:569:47 | emplace_hint | 1 | func:0 && |
| stl.h:569:36:569:47 | emplace_hint | 1 | func:0 && |
| stl.h:571:23:571:28 | insert | 0 | class:0 && |
| stl.h:571:23:571:28 | insert | 0 | value_type && |
| stl.h:573:12:573:17 | insert | 0 | const_iterator |
| stl.h:573:12:573:17 | insert | 1 | class:0 && |
| stl.h:573:12:573:17 | insert | 1 | value_type && |
| stl.h:574:38:574:43 | insert | 0 | func:0 |
| stl.h:574:38:574:43 | insert | 1 | func:0 |
| stl.h:576:12:576:16 | erase | 0 | iterator |
| stl.h:579:8:579:11 | swap | 0 | set & |
| stl.h:582:27:582:31 | merge | 0 | set & |
| stl.h:585:12:585:15 | find | 0 | const class:0 & |
| stl.h:585:12:585:15 | find | 0 | const key_type & |
| stl.h:588:12:588:22 | lower_bound | 0 | const class:0 & |
| stl.h:588:12:588:22 | lower_bound | 0 | const key_type & |
| stl.h:590:12:590:22 | upper_bound | 0 | const class:0 & |
| stl.h:590:12:590:22 | upper_bound | 0 | const key_type & |
| stl.h:592:28:592:38 | equal_range | 0 | const class:0 & |
| stl.h:592:28:592:38 | equal_range | 0 | const key_type & |
| stl.h:609:3:609:15 | unordered_set | 0 | const unordered_set & |
| stl.h:611:33:611:45 | unordered_set | 0 | func:0 |
| stl.h:611:33:611:45 | unordered_set | 1 | func:0 |
| stl.h:611:33:611:45 | unordered_set | 2 | size_type |
| stl.h:611:33:611:45 | unordered_set | 2 | unsigned long |
| stl.h:614:18:614:26 | operator= | 0 | const unordered_set & |
| stl.h:622:48:622:54 | emplace | 0 | func:0 && |
| stl.h:622:48:622:54 | emplace | 0 | func:0 && |
@@ -1585,15 +1763,19 @@ getParameterTypeName
| stl.h:623:36:623:47 | emplace_hint | 0 | const_iterator |
| stl.h:623:36:623:47 | emplace_hint | 1 | func:0 && |
| stl.h:623:36:623:47 | emplace_hint | 1 | func:0 && |
| stl.h:625:24:625:29 | insert | 0 | class:0 && |
| stl.h:625:24:625:29 | insert | 0 | value_type && |
| stl.h:627:12:627:17 | insert | 0 | const_iterator |
| stl.h:627:12:627:17 | insert | 1 | class:0 && |
| stl.h:627:12:627:17 | insert | 1 | value_type && |
| stl.h:628:38:628:43 | insert | 0 | func:0 |
| stl.h:628:38:628:43 | insert | 1 | func:0 |
| stl.h:630:12:630:16 | erase | 0 | iterator |
| stl.h:633:8:633:11 | swap | 0 | unordered_set & |
| stl.h:636:37:636:41 | merge | 0 | unordered_set & |
| stl.h:639:12:639:15 | find | 0 | const class:0 & |
| stl.h:639:12:639:15 | find | 0 | const key_type & |
| stl.h:641:28:641:38 | equal_range | 0 | const class:0 & |
| stl.h:641:28:641:38 | equal_range | 0 | const key_type & |
| stl.h:671:21:671:39 | basic_format_string | 0 | const func:0 & |
| stl.h:671:21:671:39 | basic_format_string | 0 | const func:0 & |
@@ -1704,10 +1886,12 @@ getParameterTypeName
| taint.cpp:361:7:361:12 | strdup | 0 | const char * |
| taint.cpp:362:7:362:13 | strndup | 0 | const char * |
| taint.cpp:362:7:362:13 | strndup | 1 | size_t |
| taint.cpp:362:7:362:13 | strndup | 1 | unsigned long |
| taint.cpp:363:10:363:15 | wcsdup | 0 | const wchar_t * |
| taint.cpp:364:7:364:13 | strdupa | 0 | const char * |
| taint.cpp:365:7:365:14 | strndupa | 0 | const char * |
| taint.cpp:365:7:365:14 | strndupa | 1 | size_t |
| taint.cpp:365:7:365:14 | strndupa | 1 | unsigned long |
| taint.cpp:367:6:367:16 | test_strdup | 0 | char * |
| taint.cpp:379:6:379:17 | test_strndup | 0 | int |
| taint.cpp:387:6:387:16 | test_wcsdup | 0 | wchar_t * |
@@ -1729,6 +1913,7 @@ getParameterTypeName
| taint.cpp:474:6:474:9 | swop | 1 | int & |
| taint.cpp:500:5:500:12 | getdelim | 0 | char ** |
| taint.cpp:500:5:500:12 | getdelim | 1 | size_t * |
| taint.cpp:500:5:500:12 | getdelim | 1 | unsigned long * |
| taint.cpp:500:5:500:12 | getdelim | 2 | int |
| taint.cpp:500:5:500:12 | getdelim | 3 | FILE * |
| taint.cpp:502:6:502:18 | test_getdelim | 0 | FILE * |
@@ -1743,11 +1928,13 @@ getParameterTypeName
| taint.cpp:538:7:538:13 | mempcpy | 0 | void * |
| taint.cpp:538:7:538:13 | mempcpy | 1 | const void * |
| taint.cpp:538:7:538:13 | mempcpy | 2 | size_t |
| taint.cpp:538:7:538:13 | mempcpy | 2 | unsigned long |
| taint.cpp:540:6:540:17 | test_mempcpy | 0 | int * |
| taint.cpp:548:7:548:13 | memccpy | 0 | void * |
| taint.cpp:548:7:548:13 | memccpy | 1 | const void * |
| taint.cpp:548:7:548:13 | memccpy | 2 | int |
| taint.cpp:548:7:548:13 | memccpy | 3 | size_t |
| taint.cpp:548:7:548:13 | memccpy | 3 | unsigned long |
| taint.cpp:550:6:550:17 | test_memccpy | 0 | int * |
| taint.cpp:558:7:558:12 | strcat | 0 | char * |
| taint.cpp:558:7:558:12 | strcat | 1 | const char * |
@@ -1759,17 +1946,21 @@ getParameterTypeName
| taint.cpp:570:16:570:25 | _mbsncat_l | 1 | const unsigned char * |
| taint.cpp:570:16:570:25 | _mbsncat_l | 2 | int |
| taint.cpp:570:16:570:25 | _mbsncat_l | 3 | _locale_t |
| taint.cpp:570:16:570:25 | _mbsncat_l | 3 | void * |
| taint.cpp:572:6:572:20 | test__mbsncat_l | 0 | unsigned char * |
| taint.cpp:572:6:572:20 | test__mbsncat_l | 1 | const unsigned char * |
| taint.cpp:572:6:572:20 | test__mbsncat_l | 2 | unsigned char * |
| taint.cpp:572:6:572:20 | test__mbsncat_l | 3 | _locale_t |
| taint.cpp:572:6:572:20 | test__mbsncat_l | 3 | void * |
| taint.cpp:572:6:572:20 | test__mbsncat_l | 4 | _locale_t |
| taint.cpp:572:6:572:20 | test__mbsncat_l | 4 | void * |
| taint.cpp:572:6:572:20 | test__mbsncat_l | 5 | int |
| taint.cpp:589:7:589:12 | strsep | 0 | char ** |
| taint.cpp:589:7:589:12 | strsep | 1 | const char * |
| taint.cpp:591:6:591:16 | test_strsep | 0 | char * |
| taint.cpp:602:7:602:13 | _strinc | 0 | const char * |
| taint.cpp:602:7:602:13 | _strinc | 1 | _locale_t |
| taint.cpp:602:7:602:13 | _strinc | 1 | void * |
| taint.cpp:603:16:603:22 | _mbsinc | 0 | const unsigned char * |
| taint.cpp:604:16:604:22 | _strdec | 0 | const unsigned char * |
| taint.cpp:604:16:604:22 | _strdec | 1 | const unsigned char * |
@@ -1778,6 +1969,7 @@ getParameterTypeName
| taint.cpp:606:6:606:17 | test__strinc | 2 | char * |
| taint.cpp:606:6:606:17 | test__strinc | 3 | char * |
| taint.cpp:606:6:606:17 | test__strinc | 4 | _locale_t |
| taint.cpp:606:6:606:17 | test__strinc | 4 | void * |
| taint.cpp:616:6:616:17 | test__mbsinc | 0 | unsigned char * |
| taint.cpp:616:6:616:17 | test__mbsinc | 1 | char * |
| taint.cpp:616:6:616:17 | test__mbsinc | 2 | unsigned char * |
@@ -1808,8 +2000,10 @@ getParameterTypeName
| taint.cpp:725:10:725:15 | strtol | 2 | int |
| taint.cpp:727:6:727:16 | test_strtol | 0 | char * |
| taint.cpp:735:7:735:12 | malloc | 0 | size_t |
| taint.cpp:735:7:735:12 | malloc | 0 | unsigned long |
| taint.cpp:736:7:736:13 | realloc | 0 | void * |
| taint.cpp:736:7:736:13 | realloc | 1 | size_t |
| taint.cpp:736:7:736:13 | realloc | 1 | unsigned long |
| taint.cpp:744:6:744:32 | test_realloc_2_indirections | 0 | int ** |
| taint.cpp:751:9:751:9 | operator= | 0 | A && |
| taint.cpp:751:9:751:9 | operator= | 0 | const A & |
@@ -1850,6 +2044,7 @@ getParameterTypeName
| vector.cpp:454:7:454:12 | memcpy | 0 | void * |
| vector.cpp:454:7:454:12 | memcpy | 1 | const void * |
| vector.cpp:454:7:454:12 | memcpy | 2 | size_t |
| vector.cpp:454:7:454:12 | memcpy | 2 | unsigned long |
| vector.cpp:461:6:461:9 | sink | 0 | vector> & |
| vector.cpp:462:6:462:9 | sink | 0 | string & |
| zmq.cpp:9:8:9:8 | operator= | 0 | const zmq_msg_t & |
@@ -1857,9 +2052,12 @@ getParameterTypeName
| zmq.cpp:14:5:14:21 | zmq_msg_init_data | 0 | zmq_msg_t * |
| zmq.cpp:14:5:14:21 | zmq_msg_init_data | 1 | void * |
| zmq.cpp:14:5:14:21 | zmq_msg_init_data | 2 | size_t |
| zmq.cpp:14:5:14:21 | zmq_msg_init_data | 2 | unsigned long |
| zmq.cpp:14:5:14:21 | zmq_msg_init_data | 3 | ..()(..) * |
| zmq.cpp:14:5:14:21 | zmq_msg_init_data | 3 | zmq_free_fn * |
| zmq.cpp:14:5:14:21 | zmq_msg_init_data | 4 | void * |
| zmq.cpp:15:7:15:18 | zmq_msg_data | 0 | zmq_msg_t * |
| zmq.cpp:17:6:17:13 | test_zmc | 0 | void * |
| zmq.cpp:17:6:17:13 | test_zmc | 1 | char * |
| zmq.cpp:17:6:17:13 | test_zmc | 2 | size_t |
| zmq.cpp:17:6:17:13 | test_zmc | 2 | unsigned long |