C++: Model begin and end.

This commit is contained in:
Geoffrey White
2020-09-24 17:10:41 +01:00
parent 25e0c680c6
commit 6119bf3430
6 changed files with 79 additions and 12 deletions

View File

@@ -23,3 +23,20 @@ class StdMapInsert extends TaintFunction {
)
}
}
/**
* The standard map `begin` and `end` functions and their
* variants.
*/
class StdMapBeginEnd extends TaintFunction {
StdMapBeginEnd() {
this.hasQualifiedName("std", ["map", "unordered_map"], ["begin", "end", "cbegin", "cend"])
or
this.hasQualifiedName("std", "map", ["rbegin", "crbegin", "rend", "crend"])
}
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
input.isQualifierObject() and
output.isReturnValue()
}
}

View File

@@ -657,6 +657,7 @@
| map.cpp:107:7:107:8 | ref arg m4 | map.cpp:119:7:119:8 | m4 | |
| map.cpp:107:7:107:8 | ref arg m4 | map.cpp:125:7:125:8 | m4 | |
| map.cpp:107:7:107:8 | ref arg m4 | map.cpp:249:1:249:1 | m4 | |
| map.cpp:107:17:107:18 | m4 | map.cpp:107:20:107:24 | call to begin | TAINT |
| map.cpp:107:17:107:18 | ref arg m4 | map.cpp:107:7:107:8 | m4 | |
| map.cpp:107:17:107:18 | ref arg m4 | map.cpp:113:7:113:8 | m4 | |
| map.cpp:107:17:107:18 | ref arg m4 | map.cpp:119:7:119:8 | m4 | |
@@ -677,6 +678,7 @@
| map.cpp:109:7:109:8 | ref arg m6 | map.cpp:121:7:121:8 | m6 | |
| map.cpp:109:7:109:8 | ref arg m6 | map.cpp:127:7:127:8 | m6 | |
| map.cpp:109:7:109:8 | ref arg m6 | map.cpp:249:1:249:1 | m6 | |
| map.cpp:109:27:109:28 | m6 | map.cpp:109:30:109:34 | call to begin | TAINT |
| map.cpp:109:27:109:28 | ref arg m6 | map.cpp:109:7:109:8 | m6 | |
| map.cpp:109:27:109:28 | ref arg m6 | map.cpp:115:7:115:8 | m6 | |
| map.cpp:109:27:109:28 | ref arg m6 | map.cpp:121:7:121:8 | m6 | |
@@ -760,6 +762,7 @@
| map.cpp:137:7:137:8 | ref arg m7 | map.cpp:249:1:249:1 | m7 | |
| map.cpp:138:7:138:8 | ref arg m8 | map.cpp:249:1:249:1 | m8 | |
| map.cpp:139:7:139:8 | ref arg m9 | map.cpp:249:1:249:1 | m9 | |
| map.cpp:143:12:143:13 | m1 | map.cpp:143:15:143:19 | call to begin | TAINT |
| map.cpp:143:12:143:13 | ref arg m1 | map.cpp:143:30:143:31 | m1 | |
| map.cpp:143:12:143:13 | ref arg m1 | map.cpp:249:1:249:1 | m1 | |
| map.cpp:143:15:143:19 | call to begin | map.cpp:143:7:143:21 | ... = ... | |
@@ -768,6 +771,7 @@
| map.cpp:143:15:143:19 | call to begin | map.cpp:145:9:145:10 | i1 | |
| map.cpp:143:15:143:19 | call to begin | map.cpp:146:8:146:9 | i1 | |
| map.cpp:143:15:143:19 | call to begin | map.cpp:147:8:147:9 | i1 | |
| map.cpp:143:30:143:31 | m1 | map.cpp:143:33:143:35 | call to end | TAINT |
| map.cpp:143:30:143:31 | ref arg m1 | map.cpp:143:30:143:31 | m1 | |
| map.cpp:143:30:143:31 | ref arg m1 | map.cpp:249:1:249:1 | m1 | |
| map.cpp:143:40:143:41 | i1 | map.cpp:143:42:143:42 | call to operator++ | |
@@ -780,6 +784,7 @@
| map.cpp:145:9:145:10 | i1 | map.cpp:145:8:145:8 | call to operator* | TAINT |
| map.cpp:146:8:146:9 | i1 | map.cpp:146:10:146:10 | call to operator-> | TAINT |
| map.cpp:147:8:147:9 | i1 | map.cpp:147:10:147:10 | call to operator-> | TAINT |
| map.cpp:149:12:149:13 | m2 | map.cpp:149:15:149:19 | call to begin | TAINT |
| map.cpp:149:12:149:13 | ref arg m2 | map.cpp:149:30:149:31 | m2 | |
| map.cpp:149:12:149:13 | ref arg m2 | map.cpp:179:7:179:8 | m2 | |
| map.cpp:149:12:149:13 | ref arg m2 | map.cpp:180:7:180:8 | m2 | |
@@ -796,6 +801,7 @@
| map.cpp:149:15:149:19 | call to begin | map.cpp:153:8:153:9 | i2 | |
| map.cpp:149:15:149:19 | call to begin | map.cpp:158:8:158:9 | i2 | |
| map.cpp:149:15:149:19 | call to begin | map.cpp:159:8:159:9 | i2 | |
| map.cpp:149:30:149:31 | m2 | map.cpp:149:33:149:35 | call to end | TAINT |
| map.cpp:149:30:149:31 | ref arg m2 | map.cpp:149:30:149:31 | m2 | |
| map.cpp:149:30:149:31 | ref arg m2 | map.cpp:179:7:179:8 | m2 | |
| map.cpp:149:30:149:31 | ref arg m2 | map.cpp:180:7:180:8 | m2 | |
@@ -816,12 +822,14 @@
| map.cpp:151:9:151:10 | i2 | map.cpp:151:8:151:8 | call to operator* | TAINT |
| map.cpp:152:8:152:9 | i2 | map.cpp:152:10:152:10 | call to operator-> | TAINT |
| map.cpp:153:8:153:9 | i2 | map.cpp:153:10:153:10 | call to operator-> | TAINT |
| map.cpp:155:12:155:13 | m3 | map.cpp:155:15:155:19 | call to begin | TAINT |
| map.cpp:155:12:155:13 | ref arg m3 | map.cpp:155:30:155:31 | m3 | |
| map.cpp:155:12:155:13 | ref arg m3 | map.cpp:249:1:249:1 | m3 | |
| map.cpp:155:15:155:19 | call to begin | map.cpp:155:7:155:21 | ... = ... | |
| map.cpp:155:15:155:19 | call to begin | map.cpp:155:24:155:25 | i3 | |
| map.cpp:155:15:155:19 | call to begin | map.cpp:155:40:155:41 | i3 | |
| map.cpp:155:15:155:19 | call to begin | map.cpp:157:9:157:10 | i3 | |
| map.cpp:155:30:155:31 | m3 | map.cpp:155:33:155:35 | call to end | TAINT |
| map.cpp:155:30:155:31 | ref arg m3 | map.cpp:155:30:155:31 | m3 | |
| map.cpp:155:30:155:31 | ref arg m3 | map.cpp:249:1:249:1 | m3 | |
| map.cpp:155:40:155:41 | i3 | map.cpp:155:42:155:42 | call to operator++ | |
@@ -1084,6 +1092,7 @@
| map.cpp:223:7:223:9 | ref arg m23 | map.cpp:225:2:225:4 | m23 | |
| map.cpp:223:7:223:9 | ref arg m23 | map.cpp:226:7:226:9 | m23 | |
| map.cpp:223:7:223:9 | ref arg m23 | map.cpp:249:1:249:1 | m23 | |
| map.cpp:223:17:223:19 | m23 | map.cpp:223:21:223:25 | call to begin | TAINT |
| map.cpp:223:17:223:19 | ref arg m23 | map.cpp:223:7:223:9 | m23 | |
| map.cpp:223:17:223:19 | ref arg m23 | map.cpp:224:7:224:9 | m23 | |
| map.cpp:223:17:223:19 | ref arg m23 | map.cpp:225:2:225:4 | m23 | |
@@ -1120,6 +1129,7 @@
| map.cpp:234:7:234:9 | ref arg m25 | map.cpp:236:24:236:26 | m25 | |
| map.cpp:234:7:234:9 | ref arg m25 | map.cpp:237:7:237:9 | m25 | |
| map.cpp:234:7:234:9 | ref arg m25 | map.cpp:249:1:249:1 | m25 | |
| map.cpp:234:24:234:26 | m25 | map.cpp:234:28:234:32 | call to begin | TAINT |
| map.cpp:234:24:234:26 | ref arg m25 | map.cpp:234:7:234:9 | m25 | |
| map.cpp:234:24:234:26 | ref arg m25 | map.cpp:235:7:235:9 | m25 | |
| map.cpp:234:24:234:26 | ref arg m25 | map.cpp:236:7:236:9 | m25 | |
@@ -1130,6 +1140,7 @@
| map.cpp:235:7:235:9 | m25 | map.cpp:235:7:235:9 | call to map | |
| map.cpp:236:7:236:9 | ref arg m25 | map.cpp:237:7:237:9 | m25 | |
| map.cpp:236:7:236:9 | ref arg m25 | map.cpp:249:1:249:1 | m25 | |
| map.cpp:236:24:236:26 | m25 | map.cpp:236:28:236:32 | call to begin | TAINT |
| map.cpp:236:24:236:26 | ref arg m25 | map.cpp:236:7:236:9 | m25 | |
| map.cpp:236:24:236:26 | ref arg m25 | map.cpp:237:7:237:9 | m25 | |
| map.cpp:236:24:236:26 | ref arg m25 | map.cpp:249:1:249:1 | m25 | |
@@ -1162,6 +1173,7 @@
| map.cpp:245:7:245:9 | ref arg m27 | map.cpp:247:23:247:25 | m27 | |
| map.cpp:245:7:245:9 | ref arg m27 | map.cpp:248:7:248:9 | m27 | |
| map.cpp:245:7:245:9 | ref arg m27 | map.cpp:249:1:249:1 | m27 | |
| map.cpp:245:23:245:25 | m27 | map.cpp:245:27:245:31 | call to begin | TAINT |
| map.cpp:245:23:245:25 | ref arg m27 | map.cpp:245:7:245:9 | m27 | |
| map.cpp:245:23:245:25 | ref arg m27 | map.cpp:246:7:246:9 | m27 | |
| map.cpp:245:23:245:25 | ref arg m27 | map.cpp:247:7:247:9 | m27 | |
@@ -1172,6 +1184,7 @@
| map.cpp:246:7:246:9 | m27 | map.cpp:246:7:246:9 | call to map | |
| map.cpp:247:7:247:9 | ref arg m27 | map.cpp:248:7:248:9 | m27 | |
| map.cpp:247:7:247:9 | ref arg m27 | map.cpp:249:1:249:1 | m27 | |
| map.cpp:247:23:247:25 | m27 | map.cpp:247:27:247:31 | call to begin | TAINT |
| map.cpp:247:23:247:25 | ref arg m27 | map.cpp:247:7:247:9 | m27 | |
| map.cpp:247:23:247:25 | ref arg m27 | map.cpp:248:7:248:9 | m27 | |
| map.cpp:247:23:247:25 | ref arg m27 | map.cpp:249:1:249:1 | m27 | |
@@ -1267,6 +1280,7 @@
| map.cpp:259:7:259:8 | ref arg m4 | map.cpp:271:7:271:8 | m4 | |
| map.cpp:259:7:259:8 | ref arg m4 | map.cpp:277:7:277:8 | m4 | |
| map.cpp:259:7:259:8 | ref arg m4 | map.cpp:398:1:398:1 | m4 | |
| map.cpp:259:17:259:18 | m4 | map.cpp:259:20:259:24 | call to begin | TAINT |
| map.cpp:259:17:259:18 | ref arg m4 | map.cpp:259:7:259:8 | m4 | |
| map.cpp:259:17:259:18 | ref arg m4 | map.cpp:265:7:265:8 | m4 | |
| map.cpp:259:17:259:18 | ref arg m4 | map.cpp:271:7:271:8 | m4 | |
@@ -1287,6 +1301,7 @@
| map.cpp:261:7:261:8 | ref arg m6 | map.cpp:273:7:273:8 | m6 | |
| map.cpp:261:7:261:8 | ref arg m6 | map.cpp:279:7:279:8 | m6 | |
| map.cpp:261:7:261:8 | ref arg m6 | map.cpp:398:1:398:1 | m6 | |
| map.cpp:261:27:261:28 | m6 | map.cpp:261:30:261:34 | call to begin | TAINT |
| map.cpp:261:27:261:28 | ref arg m6 | map.cpp:261:7:261:8 | m6 | |
| map.cpp:261:27:261:28 | ref arg m6 | map.cpp:267:7:267:8 | m6 | |
| map.cpp:261:27:261:28 | ref arg m6 | map.cpp:273:7:273:8 | m6 | |
@@ -1364,6 +1379,7 @@
| map.cpp:289:7:289:8 | ref arg m7 | map.cpp:398:1:398:1 | m7 | |
| map.cpp:290:7:290:8 | ref arg m8 | map.cpp:398:1:398:1 | m8 | |
| map.cpp:291:7:291:8 | ref arg m9 | map.cpp:398:1:398:1 | m9 | |
| map.cpp:295:12:295:13 | m1 | map.cpp:295:15:295:19 | call to begin | TAINT |
| map.cpp:295:12:295:13 | ref arg m1 | map.cpp:295:30:295:31 | m1 | |
| map.cpp:295:12:295:13 | ref arg m1 | map.cpp:398:1:398:1 | m1 | |
| map.cpp:295:15:295:19 | call to begin | map.cpp:295:7:295:21 | ... = ... | |
@@ -1372,6 +1388,7 @@
| map.cpp:295:15:295:19 | call to begin | map.cpp:297:9:297:10 | i1 | |
| map.cpp:295:15:295:19 | call to begin | map.cpp:298:8:298:9 | i1 | |
| map.cpp:295:15:295:19 | call to begin | map.cpp:299:8:299:9 | i1 | |
| map.cpp:295:30:295:31 | m1 | map.cpp:295:33:295:35 | call to end | TAINT |
| map.cpp:295:30:295:31 | ref arg m1 | map.cpp:295:30:295:31 | m1 | |
| map.cpp:295:30:295:31 | ref arg m1 | map.cpp:398:1:398:1 | m1 | |
| map.cpp:295:40:295:41 | i1 | map.cpp:295:42:295:42 | call to operator++ | |
@@ -1384,6 +1401,7 @@
| map.cpp:297:9:297:10 | i1 | map.cpp:297:8:297:8 | call to operator* | TAINT |
| map.cpp:298:8:298:9 | i1 | map.cpp:298:10:298:10 | call to operator-> | TAINT |
| map.cpp:299:8:299:9 | i1 | map.cpp:299:10:299:10 | call to operator-> | TAINT |
| map.cpp:301:12:301:13 | m2 | map.cpp:301:15:301:19 | call to begin | TAINT |
| map.cpp:301:12:301:13 | ref arg m2 | map.cpp:301:30:301:31 | m2 | |
| map.cpp:301:12:301:13 | ref arg m2 | map.cpp:331:7:331:8 | m2 | |
| map.cpp:301:12:301:13 | ref arg m2 | map.cpp:332:7:332:8 | m2 | |
@@ -1397,6 +1415,7 @@
| map.cpp:301:15:301:19 | call to begin | map.cpp:305:8:305:9 | i2 | |
| map.cpp:301:15:301:19 | call to begin | map.cpp:310:8:310:9 | i2 | |
| map.cpp:301:15:301:19 | call to begin | map.cpp:311:8:311:9 | i2 | |
| map.cpp:301:30:301:31 | m2 | map.cpp:301:33:301:35 | call to end | TAINT |
| map.cpp:301:30:301:31 | ref arg m2 | map.cpp:301:30:301:31 | m2 | |
| map.cpp:301:30:301:31 | ref arg m2 | map.cpp:331:7:331:8 | m2 | |
| map.cpp:301:30:301:31 | ref arg m2 | map.cpp:332:7:332:8 | m2 | |
@@ -1414,12 +1433,14 @@
| map.cpp:303:9:303:10 | i2 | map.cpp:303:8:303:8 | call to operator* | TAINT |
| map.cpp:304:8:304:9 | i2 | map.cpp:304:10:304:10 | call to operator-> | TAINT |
| map.cpp:305:8:305:9 | i2 | map.cpp:305:10:305:10 | call to operator-> | TAINT |
| map.cpp:307:12:307:13 | m3 | map.cpp:307:15:307:19 | call to begin | TAINT |
| map.cpp:307:12:307:13 | ref arg m3 | map.cpp:307:30:307:31 | m3 | |
| map.cpp:307:12:307:13 | ref arg m3 | map.cpp:398:1:398:1 | m3 | |
| map.cpp:307:15:307:19 | call to begin | map.cpp:307:7:307:21 | ... = ... | |
| map.cpp:307:15:307:19 | call to begin | map.cpp:307:24:307:25 | i3 | |
| map.cpp:307:15:307:19 | call to begin | map.cpp:307:40:307:41 | i3 | |
| map.cpp:307:15:307:19 | call to begin | map.cpp:309:9:309:10 | i3 | |
| map.cpp:307:30:307:31 | m3 | map.cpp:307:33:307:35 | call to end | TAINT |
| map.cpp:307:30:307:31 | ref arg m3 | map.cpp:307:30:307:31 | m3 | |
| map.cpp:307:30:307:31 | ref arg m3 | map.cpp:398:1:398:1 | m3 | |
| map.cpp:307:40:307:41 | i3 | map.cpp:307:42:307:42 | call to operator++ | |
@@ -1667,6 +1688,7 @@
| map.cpp:372:7:372:9 | ref arg m23 | map.cpp:374:2:374:4 | m23 | |
| map.cpp:372:7:372:9 | ref arg m23 | map.cpp:375:7:375:9 | m23 | |
| map.cpp:372:7:372:9 | ref arg m23 | map.cpp:398:1:398:1 | m23 | |
| map.cpp:372:17:372:19 | m23 | map.cpp:372:21:372:25 | call to begin | TAINT |
| map.cpp:372:17:372:19 | ref arg m23 | map.cpp:372:7:372:9 | m23 | |
| map.cpp:372:17:372:19 | ref arg m23 | map.cpp:373:7:373:9 | m23 | |
| map.cpp:372:17:372:19 | ref arg m23 | map.cpp:374:2:374:4 | m23 | |
@@ -1703,6 +1725,7 @@
| map.cpp:383:7:383:9 | ref arg m25 | map.cpp:385:24:385:26 | m25 | |
| map.cpp:383:7:383:9 | ref arg m25 | map.cpp:386:7:386:9 | m25 | |
| map.cpp:383:7:383:9 | ref arg m25 | map.cpp:398:1:398:1 | m25 | |
| map.cpp:383:24:383:26 | m25 | map.cpp:383:28:383:32 | call to begin | TAINT |
| map.cpp:383:24:383:26 | ref arg m25 | map.cpp:383:7:383:9 | m25 | |
| map.cpp:383:24:383:26 | ref arg m25 | map.cpp:384:7:384:9 | m25 | |
| map.cpp:383:24:383:26 | ref arg m25 | map.cpp:385:7:385:9 | m25 | |
@@ -1713,6 +1736,7 @@
| map.cpp:384:7:384:9 | m25 | map.cpp:384:7:384:9 | call to unordered_map | |
| map.cpp:385:7:385:9 | ref arg m25 | map.cpp:386:7:386:9 | m25 | |
| map.cpp:385:7:385:9 | ref arg m25 | map.cpp:398:1:398:1 | m25 | |
| map.cpp:385:24:385:26 | m25 | map.cpp:385:28:385:32 | call to begin | TAINT |
| map.cpp:385:24:385:26 | ref arg m25 | map.cpp:385:7:385:9 | m25 | |
| map.cpp:385:24:385:26 | ref arg m25 | map.cpp:386:7:386:9 | m25 | |
| map.cpp:385:24:385:26 | ref arg m25 | map.cpp:398:1:398:1 | m25 | |
@@ -1745,6 +1769,7 @@
| map.cpp:394:7:394:9 | ref arg m27 | map.cpp:396:23:396:25 | m27 | |
| map.cpp:394:7:394:9 | ref arg m27 | map.cpp:397:7:397:9 | m27 | |
| map.cpp:394:7:394:9 | ref arg m27 | map.cpp:398:1:398:1 | m27 | |
| map.cpp:394:23:394:25 | m27 | map.cpp:394:27:394:31 | call to begin | TAINT |
| map.cpp:394:23:394:25 | ref arg m27 | map.cpp:394:7:394:9 | m27 | |
| map.cpp:394:23:394:25 | ref arg m27 | map.cpp:395:7:395:9 | m27 | |
| map.cpp:394:23:394:25 | ref arg m27 | map.cpp:396:7:396:9 | m27 | |
@@ -1755,6 +1780,7 @@
| map.cpp:395:7:395:9 | m27 | map.cpp:395:7:395:9 | call to unordered_map | |
| map.cpp:396:7:396:9 | ref arg m27 | map.cpp:397:7:397:9 | m27 | |
| map.cpp:396:7:396:9 | ref arg m27 | map.cpp:398:1:398:1 | m27 | |
| map.cpp:396:23:396:25 | m27 | map.cpp:396:27:396:31 | call to begin | TAINT |
| map.cpp:396:23:396:25 | ref arg m27 | map.cpp:396:7:396:9 | m27 | |
| map.cpp:396:23:396:25 | ref arg m27 | map.cpp:397:7:397:9 | m27 | |
| map.cpp:396:23:396:25 | ref arg m27 | map.cpp:398:1:398:1 | m27 | |

View File

@@ -148,15 +148,15 @@ void test_map()
}
for (i2 = m2.begin(); i2 != m2.end(); i2++)
{
sink(*i2); // tainted [NOT DETECTED]
sink(i2->first);
sink(i2->second); // tainted [NOT DETECTED]
sink(*i2); // tainted
sink(i2->first); // [FALSE POSITIVE]
sink(i2->second); // tainted
}
for (i3 = m3.begin(); i3 != m3.end(); i3++)
{
sink(*i3); // tainted [NOT DETECTED]
sink(i2->first); // tainted [NOT DETECTED]
sink(i2->second);
sink(*i3); // tainted
sink(i2->first); // tainted
sink(i2->second); // [FALSE POSITIVE]
}
// array-like access
@@ -300,15 +300,15 @@ void test_unordered_map()
}
for (i2 = m2.begin(); i2 != m2.end(); i2++)
{
sink(*i2); // tainted [NOT DETECTED]
sink(i2->first);
sink(i2->second); // tainted [NOT DETECTED]
sink(*i2); // tainted
sink(i2->first); // [FALSE POSITIVE]
sink(i2->second); // tainted
}
for (i3 = m3.begin(); i3 != m3.end(); i3++)
{
sink(*i3); // tainted [NOT DETECTED]
sink(i2->first); // tainted [NOT DETECTED]
sink(i2->second);
sink(*i3); // tainted
sink(i2->first); // tainted
sink(i2->second); // [FALSE POSITIVE]
}
// array-like access

View File

@@ -53,6 +53,8 @@
| map.cpp:134:7:134:8 | call to map | map.cpp:105:39:105:44 | call to source |
| map.cpp:135:7:135:8 | call to map | map.cpp:105:39:105:44 | call to source |
| map.cpp:136:7:136:8 | call to map | map.cpp:105:39:105:44 | call to source |
| map.cpp:151:8:151:10 | call to pair | map.cpp:105:39:105:44 | call to source |
| map.cpp:157:8:157:10 | call to pair | map.cpp:106:32:106:37 | call to source |
| map.cpp:165:7:165:27 | ... = ... | map.cpp:165:20:165:25 | call to source |
| map.cpp:167:7:167:30 | ... = ... | map.cpp:167:23:167:28 | call to source |
| map.cpp:190:7:190:9 | call to map | map.cpp:188:39:188:44 | call to source |
@@ -90,6 +92,8 @@
| map.cpp:286:7:286:8 | call to unordered_map | map.cpp:257:39:257:44 | call to source |
| map.cpp:287:7:287:8 | call to unordered_map | map.cpp:257:39:257:44 | call to source |
| map.cpp:288:7:288:8 | call to unordered_map | map.cpp:257:39:257:44 | call to source |
| map.cpp:303:8:303:10 | call to pair | map.cpp:257:39:257:44 | call to source |
| map.cpp:309:8:309:10 | call to pair | map.cpp:258:32:258:37 | call to source |
| map.cpp:317:7:317:27 | ... = ... | map.cpp:317:20:317:25 | call to source |
| map.cpp:319:7:319:30 | ... = ... | map.cpp:319:23:319:28 | call to source |
| map.cpp:339:7:339:9 | call to unordered_map | map.cpp:337:39:337:44 | call to source |

View File

@@ -50,6 +50,10 @@
| map.cpp:134:7:134:8 | map.cpp:105:39:105:44 | AST only |
| map.cpp:135:7:135:8 | map.cpp:105:39:105:44 | AST only |
| map.cpp:136:7:136:8 | map.cpp:105:39:105:44 | AST only |
| map.cpp:152:12:152:16 | map.cpp:105:39:105:44 | IR only |
| map.cpp:153:12:153:17 | map.cpp:105:39:105:44 | IR only |
| map.cpp:158:12:158:16 | map.cpp:105:39:105:44 | IR only |
| map.cpp:159:12:159:17 | map.cpp:105:39:105:44 | IR only |
| map.cpp:190:7:190:9 | map.cpp:188:39:188:44 | AST only |
| map.cpp:190:7:190:9 | map.cpp:188:49:188:54 | AST only |
| map.cpp:193:7:193:9 | map.cpp:189:39:189:44 | AST only |
@@ -86,6 +90,10 @@
| map.cpp:286:7:286:8 | map.cpp:257:39:257:44 | AST only |
| map.cpp:287:7:287:8 | map.cpp:257:39:257:44 | AST only |
| map.cpp:288:7:288:8 | map.cpp:257:39:257:44 | AST only |
| map.cpp:304:12:304:16 | map.cpp:257:39:257:44 | IR only |
| map.cpp:305:12:305:17 | map.cpp:257:39:257:44 | IR only |
| map.cpp:310:12:310:16 | map.cpp:257:39:257:44 | IR only |
| map.cpp:311:12:311:17 | map.cpp:257:39:257:44 | IR only |
| map.cpp:339:7:339:9 | map.cpp:337:39:337:44 | AST only |
| map.cpp:339:7:339:9 | map.cpp:337:49:337:54 | AST only |
| map.cpp:342:7:342:9 | map.cpp:338:39:338:44 | AST only |

View File

@@ -81,11 +81,23 @@
| map.cpp:105:7:105:54 | call to iterator | map.cpp:105:39:105:44 | call to source |
| map.cpp:106:7:106:54 | call to iterator | map.cpp:106:32:106:37 | call to source |
| map.cpp:107:10:107:15 | call to insert | map.cpp:107:62:107:67 | call to source |
| map.cpp:151:8:151:10 | call to pair | map.cpp:105:39:105:44 | call to source |
| map.cpp:152:12:152:16 | first | map.cpp:105:39:105:44 | call to source |
| map.cpp:153:12:153:17 | second | map.cpp:105:39:105:44 | call to source |
| map.cpp:157:8:157:10 | call to pair | map.cpp:106:32:106:37 | call to source |
| map.cpp:158:12:158:16 | first | map.cpp:105:39:105:44 | call to source |
| map.cpp:159:12:159:17 | second | map.cpp:105:39:105:44 | call to source |
| map.cpp:165:7:165:27 | ... = ... | map.cpp:165:20:165:25 | call to source |
| map.cpp:167:7:167:30 | ... = ... | map.cpp:167:23:167:28 | call to source |
| map.cpp:257:7:257:54 | call to iterator | map.cpp:257:39:257:44 | call to source |
| map.cpp:258:7:258:54 | call to iterator | map.cpp:258:32:258:37 | call to source |
| map.cpp:259:10:259:15 | call to insert | map.cpp:259:62:259:67 | call to source |
| map.cpp:303:8:303:10 | call to pair | map.cpp:257:39:257:44 | call to source |
| map.cpp:304:12:304:16 | first | map.cpp:257:39:257:44 | call to source |
| map.cpp:305:12:305:17 | second | map.cpp:257:39:257:44 | call to source |
| map.cpp:309:8:309:10 | call to pair | map.cpp:258:32:258:37 | call to source |
| map.cpp:310:12:310:16 | first | map.cpp:257:39:257:44 | call to source |
| map.cpp:311:12:311:17 | second | map.cpp:257:39:257:44 | call to source |
| map.cpp:317:7:317:27 | ... = ... | map.cpp:317:20:317:25 | call to source |
| map.cpp:319:7:319:30 | ... = ... | map.cpp:319:23:319:28 | call to source |
| movableclass.cpp:44:8:44:9 | s1 | movableclass.cpp:39:21:39:26 | call to source |