C++: Model insert.

This commit is contained in:
Geoffrey White
2020-09-24 13:18:17 +01:00
parent 0dca7f81bc
commit 25e0c680c6
7 changed files with 274 additions and 36 deletions

View File

@@ -16,6 +16,7 @@ private import implementations.Strdup
private import implementations.Strftime
private import implementations.StdContainer
private import implementations.StdPair
private import implementations.StdMap
private import implementations.StdString
private import implementations.Swap
private import implementations.GetDelim

View File

@@ -0,0 +1,25 @@
/**
* Provides models for C++ containers `std::map` and `std::unordered_map`.
*/
import semmle.code.cpp.models.interfaces.Taint
import semmle.code.cpp.models.implementations.Iterator
/**
* The standard map `insert` function.
*/
class StdMapInsert extends TaintFunction {
StdMapInsert() {
this.hasQualifiedName("std", ["map", "unordered_map"], "insert")
}
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
// flow from last parameter to qualifier and return value
// (where the return value is a pair, this should really flow just to the first part of it)
input.isParameterDeref(getNumberOfParameters() - 1) and
(
output.isQualifierObject() or
output.isReturnValue()
)
}
}

View File

@@ -615,6 +615,8 @@
| map.cpp:104:7:104:8 | ref arg m1 | map.cpp:143:30:143:31 | m1 | |
| map.cpp:104:7:104:8 | ref arg m1 | map.cpp:249:1:249:1 | m1 | |
| map.cpp:104:17:104:30 | call to make_pair | map.cpp:104:17:104:44 | call to pair | TAINT |
| map.cpp:104:17:104:44 | call to pair | map.cpp:104:7:104:8 | ref arg m1 | TAINT |
| map.cpp:104:17:104:44 | call to pair | map.cpp:104:10:104:15 | call to insert | TAINT |
| map.cpp:104:32:104:36 | abc | map.cpp:104:17:104:30 | call to make_pair | TAINT |
| map.cpp:104:39:104:43 | def | map.cpp:104:17:104:30 | call to make_pair | TAINT |
| map.cpp:104:47:104:51 | first | map.cpp:104:7:104:51 | call to iterator | |
@@ -634,6 +636,8 @@
| map.cpp:105:7:105:8 | ref arg m2 | map.cpp:184:7:184:8 | m2 | |
| map.cpp:105:7:105:8 | ref arg m2 | map.cpp:249:1:249:1 | m2 | |
| map.cpp:105:17:105:30 | call to make_pair | map.cpp:105:17:105:47 | call to pair | TAINT |
| map.cpp:105:17:105:47 | call to pair | map.cpp:105:7:105:8 | ref arg m2 | TAINT |
| map.cpp:105:17:105:47 | call to pair | map.cpp:105:10:105:15 | call to insert | TAINT |
| map.cpp:105:32:105:36 | abc | map.cpp:105:17:105:30 | call to make_pair | TAINT |
| map.cpp:105:39:105:44 | call to source | map.cpp:105:17:105:30 | call to make_pair | TAINT |
| map.cpp:105:50:105:54 | first | map.cpp:105:7:105:54 | call to iterator | |
@@ -644,6 +648,8 @@
| map.cpp:106:7:106:8 | ref arg m3 | map.cpp:155:30:155:31 | m3 | |
| map.cpp:106:7:106:8 | ref arg m3 | map.cpp:249:1:249:1 | m3 | |
| map.cpp:106:17:106:30 | call to make_pair | map.cpp:106:17:106:47 | call to pair | TAINT |
| map.cpp:106:17:106:47 | call to pair | map.cpp:106:7:106:8 | ref arg m3 | TAINT |
| map.cpp:106:17:106:47 | call to pair | map.cpp:106:10:106:15 | call to insert | TAINT |
| map.cpp:106:32:106:37 | call to source | map.cpp:106:17:106:30 | call to make_pair | TAINT |
| map.cpp:106:42:106:46 | def | map.cpp:106:17:106:30 | call to make_pair | TAINT |
| map.cpp:106:50:106:54 | first | map.cpp:106:7:106:54 | call to iterator | |
@@ -657,6 +663,8 @@
| map.cpp:107:17:107:18 | ref arg m4 | map.cpp:125:7:125:8 | m4 | |
| map.cpp:107:17:107:18 | ref arg m4 | map.cpp:249:1:249:1 | m4 | |
| map.cpp:107:20:107:24 | call to begin | map.cpp:107:17:107:26 | call to iterator | TAINT |
| map.cpp:107:29:107:70 | call to pair | map.cpp:107:7:107:8 | ref arg m4 | TAINT |
| map.cpp:107:29:107:70 | call to pair | map.cpp:107:10:107:15 | call to insert | TAINT |
| map.cpp:107:29:107:70 | call to pair | map.cpp:107:29:107:70 | call to pair | TAINT |
| map.cpp:107:55:107:59 | abc | map.cpp:107:29:107:70 | call to pair | TAINT |
| map.cpp:107:62:107:67 | call to source | map.cpp:107:29:107:70 | call to pair | TAINT |
@@ -866,21 +874,29 @@
| map.cpp:175:2:175:4 | ref arg m14 | map.cpp:178:2:178:4 | m14 | |
| map.cpp:175:2:175:4 | ref arg m14 | map.cpp:249:1:249:1 | m14 | |
| map.cpp:175:13:175:26 | call to make_pair | map.cpp:175:13:175:36 | call to pair | TAINT |
| map.cpp:175:13:175:36 | call to pair | map.cpp:175:2:175:4 | ref arg m14 | TAINT |
| map.cpp:175:13:175:36 | call to pair | map.cpp:175:6:175:11 | call to insert | TAINT |
| map.cpp:175:28:175:30 | a | map.cpp:175:13:175:26 | call to make_pair | TAINT |
| map.cpp:175:33:175:35 | a | map.cpp:175:13:175:26 | call to make_pair | TAINT |
| map.cpp:176:2:176:4 | ref arg m14 | map.cpp:177:2:177:4 | m14 | |
| map.cpp:176:2:176:4 | ref arg m14 | map.cpp:178:2:178:4 | m14 | |
| map.cpp:176:2:176:4 | ref arg m14 | map.cpp:249:1:249:1 | m14 | |
| map.cpp:176:13:176:26 | call to make_pair | map.cpp:176:13:176:41 | call to pair | TAINT |
| map.cpp:176:13:176:41 | call to pair | map.cpp:176:2:176:4 | ref arg m14 | TAINT |
| map.cpp:176:13:176:41 | call to pair | map.cpp:176:6:176:11 | call to insert | TAINT |
| map.cpp:176:28:176:30 | b | map.cpp:176:13:176:26 | call to make_pair | TAINT |
| map.cpp:176:33:176:38 | call to source | map.cpp:176:13:176:26 | call to make_pair | TAINT |
| map.cpp:177:2:177:4 | ref arg m14 | map.cpp:178:2:178:4 | m14 | |
| map.cpp:177:2:177:4 | ref arg m14 | map.cpp:249:1:249:1 | m14 | |
| map.cpp:177:13:177:26 | call to make_pair | map.cpp:177:13:177:41 | call to pair | TAINT |
| map.cpp:177:13:177:41 | call to pair | map.cpp:177:2:177:4 | ref arg m14 | TAINT |
| map.cpp:177:13:177:41 | call to pair | map.cpp:177:6:177:11 | call to insert | TAINT |
| map.cpp:177:28:177:30 | c | map.cpp:177:13:177:26 | call to make_pair | TAINT |
| map.cpp:177:33:177:38 | call to source | map.cpp:177:13:177:26 | call to make_pair | TAINT |
| map.cpp:178:2:178:4 | ref arg m14 | map.cpp:249:1:249:1 | m14 | |
| map.cpp:178:13:178:26 | call to make_pair | map.cpp:178:13:178:36 | call to pair | TAINT |
| map.cpp:178:13:178:36 | call to pair | map.cpp:178:2:178:4 | ref arg m14 | TAINT |
| map.cpp:178:13:178:36 | call to pair | map.cpp:178:6:178:11 | call to insert | TAINT |
| map.cpp:178:28:178:30 | d | map.cpp:178:13:178:26 | call to make_pair | TAINT |
| map.cpp:178:33:178:35 | d | map.cpp:178:13:178:26 | call to make_pair | TAINT |
| map.cpp:179:7:179:8 | ref arg m2 | map.cpp:180:7:180:8 | m2 | |
@@ -934,6 +950,8 @@
| map.cpp:188:2:188:4 | ref arg m15 | map.cpp:196:7:196:9 | m15 | |
| map.cpp:188:2:188:4 | ref arg m15 | map.cpp:211:2:211:4 | m15 | |
| map.cpp:188:2:188:4 | ref arg m15 | map.cpp:249:1:249:1 | m15 | |
| map.cpp:188:13:188:57 | call to pair | map.cpp:188:2:188:4 | ref arg m15 | TAINT |
| map.cpp:188:13:188:57 | call to pair | map.cpp:188:6:188:11 | call to insert | TAINT |
| map.cpp:188:13:188:57 | call to pair | map.cpp:188:13:188:57 | call to pair | TAINT |
| map.cpp:188:39:188:44 | call to source | map.cpp:188:13:188:57 | call to pair | TAINT |
| map.cpp:188:49:188:54 | call to source | map.cpp:188:13:188:57 | call to pair | TAINT |
@@ -942,6 +960,8 @@
| map.cpp:189:2:189:4 | ref arg m18 | map.cpp:199:7:199:9 | m18 | |
| map.cpp:189:2:189:4 | ref arg m18 | map.cpp:212:12:212:14 | m18 | |
| map.cpp:189:2:189:4 | ref arg m18 | map.cpp:249:1:249:1 | m18 | |
| map.cpp:189:13:189:57 | call to pair | map.cpp:189:2:189:4 | ref arg m18 | TAINT |
| map.cpp:189:13:189:57 | call to pair | map.cpp:189:6:189:11 | call to insert | TAINT |
| map.cpp:189:13:189:57 | call to pair | map.cpp:189:13:189:57 | call to pair | TAINT |
| map.cpp:189:39:189:44 | call to source | map.cpp:189:13:189:57 | call to pair | TAINT |
| map.cpp:189:49:189:54 | call to source | map.cpp:189:13:189:57 | call to pair | TAINT |
@@ -984,24 +1004,32 @@
| map.cpp:203:2:203:4 | ref arg m19 | map.cpp:207:7:207:9 | m19 | |
| map.cpp:203:2:203:4 | ref arg m19 | map.cpp:213:7:213:9 | m19 | |
| map.cpp:203:2:203:4 | ref arg m19 | map.cpp:249:1:249:1 | m19 | |
| map.cpp:203:13:203:57 | call to pair | map.cpp:203:2:203:4 | ref arg m19 | TAINT |
| map.cpp:203:13:203:57 | call to pair | map.cpp:203:6:203:11 | call to insert | TAINT |
| map.cpp:203:13:203:57 | call to pair | map.cpp:203:13:203:57 | call to pair | TAINT |
| map.cpp:203:39:203:44 | call to source | map.cpp:203:13:203:57 | call to pair | TAINT |
| map.cpp:203:49:203:54 | call to source | map.cpp:203:13:203:57 | call to pair | TAINT |
| map.cpp:204:2:204:4 | ref arg m20 | map.cpp:208:7:208:9 | m20 | |
| map.cpp:204:2:204:4 | ref arg m20 | map.cpp:214:7:214:9 | m20 | |
| map.cpp:204:2:204:4 | ref arg m20 | map.cpp:249:1:249:1 | m20 | |
| map.cpp:204:13:204:51 | call to pair | map.cpp:204:2:204:4 | ref arg m20 | TAINT |
| map.cpp:204:13:204:51 | call to pair | map.cpp:204:6:204:11 | call to insert | TAINT |
| map.cpp:204:13:204:51 | call to pair | map.cpp:204:13:204:51 | call to pair | TAINT |
| map.cpp:204:39:204:43 | abc | map.cpp:204:13:204:51 | call to pair | TAINT |
| map.cpp:204:46:204:50 | def | map.cpp:204:13:204:51 | call to pair | TAINT |
| map.cpp:205:2:205:4 | ref arg m21 | map.cpp:209:7:209:9 | m21 | |
| map.cpp:205:2:205:4 | ref arg m21 | map.cpp:215:7:215:9 | m21 | |
| map.cpp:205:2:205:4 | ref arg m21 | map.cpp:249:1:249:1 | m21 | |
| map.cpp:205:13:205:51 | call to pair | map.cpp:205:2:205:4 | ref arg m21 | TAINT |
| map.cpp:205:13:205:51 | call to pair | map.cpp:205:6:205:11 | call to insert | TAINT |
| map.cpp:205:13:205:51 | call to pair | map.cpp:205:13:205:51 | call to pair | TAINT |
| map.cpp:205:39:205:43 | abc | map.cpp:205:13:205:51 | call to pair | TAINT |
| map.cpp:205:46:205:50 | def | map.cpp:205:13:205:51 | call to pair | TAINT |
| map.cpp:206:2:206:4 | ref arg m22 | map.cpp:210:7:210:9 | m22 | |
| map.cpp:206:2:206:4 | ref arg m22 | map.cpp:216:7:216:9 | m22 | |
| map.cpp:206:2:206:4 | ref arg m22 | map.cpp:249:1:249:1 | m22 | |
| map.cpp:206:13:206:57 | call to pair | map.cpp:206:2:206:4 | ref arg m22 | TAINT |
| map.cpp:206:13:206:57 | call to pair | map.cpp:206:6:206:11 | call to insert | TAINT |
| map.cpp:206:13:206:57 | call to pair | map.cpp:206:13:206:57 | call to pair | TAINT |
| map.cpp:206:39:206:44 | call to source | map.cpp:206:13:206:57 | call to pair | TAINT |
| map.cpp:206:49:206:54 | call to source | map.cpp:206:13:206:57 | call to pair | TAINT |
@@ -1034,6 +1062,8 @@
| map.cpp:220:2:220:4 | ref arg m23 | map.cpp:225:2:225:4 | m23 | |
| map.cpp:220:2:220:4 | ref arg m23 | map.cpp:226:7:226:9 | m23 | |
| map.cpp:220:2:220:4 | ref arg m23 | map.cpp:249:1:249:1 | m23 | |
| map.cpp:220:13:220:57 | call to pair | map.cpp:220:2:220:4 | ref arg m23 | TAINT |
| map.cpp:220:13:220:57 | call to pair | map.cpp:220:6:220:11 | call to insert | TAINT |
| map.cpp:220:13:220:57 | call to pair | map.cpp:220:13:220:57 | call to pair | TAINT |
| map.cpp:220:39:220:44 | call to source | map.cpp:220:13:220:57 | call to pair | TAINT |
| map.cpp:220:49:220:54 | call to source | map.cpp:220:13:220:57 | call to pair | TAINT |
@@ -1044,6 +1074,8 @@
| map.cpp:221:2:221:4 | ref arg m23 | map.cpp:225:2:225:4 | m23 | |
| map.cpp:221:2:221:4 | ref arg m23 | map.cpp:226:7:226:9 | m23 | |
| map.cpp:221:2:221:4 | ref arg m23 | map.cpp:249:1:249:1 | m23 | |
| map.cpp:221:13:221:57 | call to pair | map.cpp:221:2:221:4 | ref arg m23 | TAINT |
| map.cpp:221:13:221:57 | call to pair | map.cpp:221:6:221:11 | call to insert | TAINT |
| map.cpp:221:13:221:57 | call to pair | map.cpp:221:13:221:57 | call to pair | TAINT |
| map.cpp:221:39:221:44 | call to source | map.cpp:221:13:221:57 | call to pair | TAINT |
| map.cpp:221:49:221:54 | call to source | map.cpp:221:13:221:57 | call to pair | TAINT |
@@ -1196,6 +1228,8 @@
| map.cpp:256:7:256:8 | ref arg m1 | map.cpp:295:30:295:31 | m1 | |
| map.cpp:256:7:256:8 | ref arg m1 | map.cpp:398:1:398:1 | m1 | |
| map.cpp:256:17:256:30 | call to make_pair | map.cpp:256:17:256:44 | call to pair | TAINT |
| map.cpp:256:17:256:44 | call to pair | map.cpp:256:7:256:8 | ref arg m1 | TAINT |
| map.cpp:256:17:256:44 | call to pair | map.cpp:256:10:256:15 | call to insert | TAINT |
| map.cpp:256:32:256:36 | abc | map.cpp:256:17:256:30 | call to make_pair | TAINT |
| map.cpp:256:39:256:43 | def | map.cpp:256:17:256:30 | call to make_pair | TAINT |
| map.cpp:256:47:256:51 | first | map.cpp:256:7:256:51 | call to iterator | |
@@ -1212,6 +1246,8 @@
| map.cpp:257:7:257:8 | ref arg m2 | map.cpp:333:7:333:8 | m2 | |
| map.cpp:257:7:257:8 | ref arg m2 | map.cpp:398:1:398:1 | m2 | |
| map.cpp:257:17:257:30 | call to make_pair | map.cpp:257:17:257:47 | call to pair | TAINT |
| map.cpp:257:17:257:47 | call to pair | map.cpp:257:7:257:8 | ref arg m2 | TAINT |
| map.cpp:257:17:257:47 | call to pair | map.cpp:257:10:257:15 | call to insert | TAINT |
| map.cpp:257:32:257:36 | abc | map.cpp:257:17:257:30 | call to make_pair | TAINT |
| map.cpp:257:39:257:44 | call to source | map.cpp:257:17:257:30 | call to make_pair | TAINT |
| map.cpp:257:50:257:54 | first | map.cpp:257:7:257:54 | call to iterator | |
@@ -1222,6 +1258,8 @@
| map.cpp:258:7:258:8 | ref arg m3 | map.cpp:307:30:307:31 | m3 | |
| map.cpp:258:7:258:8 | ref arg m3 | map.cpp:398:1:398:1 | m3 | |
| map.cpp:258:17:258:30 | call to make_pair | map.cpp:258:17:258:47 | call to pair | TAINT |
| map.cpp:258:17:258:47 | call to pair | map.cpp:258:7:258:8 | ref arg m3 | TAINT |
| map.cpp:258:17:258:47 | call to pair | map.cpp:258:10:258:15 | call to insert | TAINT |
| map.cpp:258:32:258:37 | call to source | map.cpp:258:17:258:30 | call to make_pair | TAINT |
| map.cpp:258:42:258:46 | def | map.cpp:258:17:258:30 | call to make_pair | TAINT |
| map.cpp:258:50:258:54 | first | map.cpp:258:7:258:54 | call to iterator | |
@@ -1235,6 +1273,8 @@
| map.cpp:259:17:259:18 | ref arg m4 | map.cpp:277:7:277:8 | m4 | |
| map.cpp:259:17:259:18 | ref arg m4 | map.cpp:398:1:398:1 | m4 | |
| map.cpp:259:20:259:24 | call to begin | map.cpp:259:17:259:26 | call to iterator | TAINT |
| map.cpp:259:29:259:70 | call to pair | map.cpp:259:7:259:8 | ref arg m4 | TAINT |
| map.cpp:259:29:259:70 | call to pair | map.cpp:259:10:259:15 | call to insert | TAINT |
| map.cpp:259:29:259:70 | call to pair | map.cpp:259:29:259:70 | call to pair | TAINT |
| map.cpp:259:55:259:59 | abc | map.cpp:259:29:259:70 | call to pair | TAINT |
| map.cpp:259:62:259:67 | call to source | map.cpp:259:29:259:70 | call to pair | TAINT |
@@ -1432,21 +1472,29 @@
| map.cpp:327:2:327:4 | ref arg m14 | map.cpp:330:2:330:4 | m14 | |
| map.cpp:327:2:327:4 | ref arg m14 | map.cpp:398:1:398:1 | m14 | |
| map.cpp:327:13:327:26 | call to make_pair | map.cpp:327:13:327:36 | call to pair | TAINT |
| map.cpp:327:13:327:36 | call to pair | map.cpp:327:2:327:4 | ref arg m14 | TAINT |
| map.cpp:327:13:327:36 | call to pair | map.cpp:327:6:327:11 | call to insert | TAINT |
| map.cpp:327:28:327:30 | a | map.cpp:327:13:327:26 | call to make_pair | TAINT |
| map.cpp:327:33:327:35 | a | map.cpp:327:13:327:26 | call to make_pair | TAINT |
| map.cpp:328:2:328:4 | ref arg m14 | map.cpp:329:2:329:4 | m14 | |
| map.cpp:328:2:328:4 | ref arg m14 | map.cpp:330:2:330:4 | m14 | |
| map.cpp:328:2:328:4 | ref arg m14 | map.cpp:398:1:398:1 | m14 | |
| map.cpp:328:13:328:26 | call to make_pair | map.cpp:328:13:328:41 | call to pair | TAINT |
| map.cpp:328:13:328:41 | call to pair | map.cpp:328:2:328:4 | ref arg m14 | TAINT |
| map.cpp:328:13:328:41 | call to pair | map.cpp:328:6:328:11 | call to insert | TAINT |
| map.cpp:328:28:328:30 | b | map.cpp:328:13:328:26 | call to make_pair | TAINT |
| map.cpp:328:33:328:38 | call to source | map.cpp:328:13:328:26 | call to make_pair | TAINT |
| map.cpp:329:2:329:4 | ref arg m14 | map.cpp:330:2:330:4 | m14 | |
| map.cpp:329:2:329:4 | ref arg m14 | map.cpp:398:1:398:1 | m14 | |
| map.cpp:329:13:329:26 | call to make_pair | map.cpp:329:13:329:41 | call to pair | TAINT |
| map.cpp:329:13:329:41 | call to pair | map.cpp:329:2:329:4 | ref arg m14 | TAINT |
| map.cpp:329:13:329:41 | call to pair | map.cpp:329:6:329:11 | call to insert | TAINT |
| map.cpp:329:28:329:30 | c | map.cpp:329:13:329:26 | call to make_pair | TAINT |
| map.cpp:329:33:329:38 | call to source | map.cpp:329:13:329:26 | call to make_pair | TAINT |
| map.cpp:330:2:330:4 | ref arg m14 | map.cpp:398:1:398:1 | m14 | |
| map.cpp:330:13:330:26 | call to make_pair | map.cpp:330:13:330:36 | call to pair | TAINT |
| map.cpp:330:13:330:36 | call to pair | map.cpp:330:2:330:4 | ref arg m14 | TAINT |
| map.cpp:330:13:330:36 | call to pair | map.cpp:330:6:330:11 | call to insert | TAINT |
| map.cpp:330:28:330:30 | d | map.cpp:330:13:330:26 | call to make_pair | TAINT |
| map.cpp:330:33:330:35 | d | map.cpp:330:13:330:26 | call to make_pair | TAINT |
| map.cpp:331:7:331:8 | ref arg m2 | map.cpp:332:7:332:8 | m2 | |
@@ -1485,6 +1533,8 @@
| map.cpp:337:2:337:4 | ref arg m15 | map.cpp:345:7:345:9 | m15 | |
| map.cpp:337:2:337:4 | ref arg m15 | map.cpp:360:2:360:4 | m15 | |
| map.cpp:337:2:337:4 | ref arg m15 | map.cpp:398:1:398:1 | m15 | |
| map.cpp:337:13:337:57 | call to pair | map.cpp:337:2:337:4 | ref arg m15 | TAINT |
| map.cpp:337:13:337:57 | call to pair | map.cpp:337:6:337:11 | call to insert | TAINT |
| map.cpp:337:13:337:57 | call to pair | map.cpp:337:13:337:57 | call to pair | TAINT |
| map.cpp:337:39:337:44 | call to source | map.cpp:337:13:337:57 | call to pair | TAINT |
| map.cpp:337:49:337:54 | call to source | map.cpp:337:13:337:57 | call to pair | TAINT |
@@ -1493,6 +1543,8 @@
| map.cpp:338:2:338:4 | ref arg m18 | map.cpp:348:7:348:9 | m18 | |
| map.cpp:338:2:338:4 | ref arg m18 | map.cpp:361:12:361:14 | m18 | |
| map.cpp:338:2:338:4 | ref arg m18 | map.cpp:398:1:398:1 | m18 | |
| map.cpp:338:13:338:57 | call to pair | map.cpp:338:2:338:4 | ref arg m18 | TAINT |
| map.cpp:338:13:338:57 | call to pair | map.cpp:338:6:338:11 | call to insert | TAINT |
| map.cpp:338:13:338:57 | call to pair | map.cpp:338:13:338:57 | call to pair | TAINT |
| map.cpp:338:39:338:44 | call to source | map.cpp:338:13:338:57 | call to pair | TAINT |
| map.cpp:338:49:338:54 | call to source | map.cpp:338:13:338:57 | call to pair | TAINT |
@@ -1535,24 +1587,32 @@
| map.cpp:352:2:352:4 | ref arg m19 | map.cpp:356:7:356:9 | m19 | |
| map.cpp:352:2:352:4 | ref arg m19 | map.cpp:362:7:362:9 | m19 | |
| map.cpp:352:2:352:4 | ref arg m19 | map.cpp:398:1:398:1 | m19 | |
| map.cpp:352:13:352:57 | call to pair | map.cpp:352:2:352:4 | ref arg m19 | TAINT |
| map.cpp:352:13:352:57 | call to pair | map.cpp:352:6:352:11 | call to insert | TAINT |
| map.cpp:352:13:352:57 | call to pair | map.cpp:352:13:352:57 | call to pair | TAINT |
| map.cpp:352:39:352:44 | call to source | map.cpp:352:13:352:57 | call to pair | TAINT |
| map.cpp:352:49:352:54 | call to source | map.cpp:352:13:352:57 | call to pair | TAINT |
| map.cpp:353:2:353:4 | ref arg m20 | map.cpp:357:7:357:9 | m20 | |
| map.cpp:353:2:353:4 | ref arg m20 | map.cpp:363:7:363:9 | m20 | |
| map.cpp:353:2:353:4 | ref arg m20 | map.cpp:398:1:398:1 | m20 | |
| map.cpp:353:13:353:51 | call to pair | map.cpp:353:2:353:4 | ref arg m20 | TAINT |
| map.cpp:353:13:353:51 | call to pair | map.cpp:353:6:353:11 | call to insert | TAINT |
| map.cpp:353:13:353:51 | call to pair | map.cpp:353:13:353:51 | call to pair | TAINT |
| map.cpp:353:39:353:43 | abc | map.cpp:353:13:353:51 | call to pair | TAINT |
| map.cpp:353:46:353:50 | def | map.cpp:353:13:353:51 | call to pair | TAINT |
| map.cpp:354:2:354:4 | ref arg m21 | map.cpp:358:7:358:9 | m21 | |
| map.cpp:354:2:354:4 | ref arg m21 | map.cpp:364:7:364:9 | m21 | |
| map.cpp:354:2:354:4 | ref arg m21 | map.cpp:398:1:398:1 | m21 | |
| map.cpp:354:13:354:51 | call to pair | map.cpp:354:2:354:4 | ref arg m21 | TAINT |
| map.cpp:354:13:354:51 | call to pair | map.cpp:354:6:354:11 | call to insert | TAINT |
| map.cpp:354:13:354:51 | call to pair | map.cpp:354:13:354:51 | call to pair | TAINT |
| map.cpp:354:39:354:43 | abc | map.cpp:354:13:354:51 | call to pair | TAINT |
| map.cpp:354:46:354:50 | def | map.cpp:354:13:354:51 | call to pair | TAINT |
| map.cpp:355:2:355:4 | ref arg m22 | map.cpp:359:7:359:9 | m22 | |
| map.cpp:355:2:355:4 | ref arg m22 | map.cpp:365:7:365:9 | m22 | |
| map.cpp:355:2:355:4 | ref arg m22 | map.cpp:398:1:398:1 | m22 | |
| map.cpp:355:13:355:57 | call to pair | map.cpp:355:2:355:4 | ref arg m22 | TAINT |
| map.cpp:355:13:355:57 | call to pair | map.cpp:355:6:355:11 | call to insert | TAINT |
| map.cpp:355:13:355:57 | call to pair | map.cpp:355:13:355:57 | call to pair | TAINT |
| map.cpp:355:39:355:44 | call to source | map.cpp:355:13:355:57 | call to pair | TAINT |
| map.cpp:355:49:355:54 | call to source | map.cpp:355:13:355:57 | call to pair | TAINT |
@@ -1585,6 +1645,8 @@
| map.cpp:369:2:369:4 | ref arg m23 | map.cpp:374:2:374:4 | m23 | |
| map.cpp:369:2:369:4 | ref arg m23 | map.cpp:375:7:375:9 | m23 | |
| map.cpp:369:2:369:4 | ref arg m23 | map.cpp:398:1:398:1 | m23 | |
| map.cpp:369:13:369:57 | call to pair | map.cpp:369:2:369:4 | ref arg m23 | TAINT |
| map.cpp:369:13:369:57 | call to pair | map.cpp:369:6:369:11 | call to insert | TAINT |
| map.cpp:369:13:369:57 | call to pair | map.cpp:369:13:369:57 | call to pair | TAINT |
| map.cpp:369:39:369:44 | call to source | map.cpp:369:13:369:57 | call to pair | TAINT |
| map.cpp:369:49:369:54 | call to source | map.cpp:369:13:369:57 | call to pair | TAINT |
@@ -1595,6 +1657,8 @@
| map.cpp:370:2:370:4 | ref arg m23 | map.cpp:374:2:374:4 | m23 | |
| map.cpp:370:2:370:4 | ref arg m23 | map.cpp:375:7:375:9 | m23 | |
| map.cpp:370:2:370:4 | ref arg m23 | map.cpp:398:1:398:1 | m23 | |
| map.cpp:370:13:370:57 | call to pair | map.cpp:370:2:370:4 | ref arg m23 | TAINT |
| map.cpp:370:13:370:57 | call to pair | map.cpp:370:6:370:11 | call to insert | TAINT |
| map.cpp:370:13:370:57 | call to pair | map.cpp:370:13:370:57 | call to pair | TAINT |
| map.cpp:370:39:370:44 | call to source | map.cpp:370:13:370:57 | call to pair | TAINT |
| map.cpp:370:49:370:54 | call to source | map.cpp:370:13:370:57 | call to pair | TAINT |

View File

@@ -104,13 +104,13 @@ void test_map()
sink(m1.insert(std::make_pair("abc", "def")).first);
sink(m2.insert(std::make_pair("abc", source())).first); // tainted [NOT DETECTED]
sink(m3.insert(std::make_pair(source(), "def")).first); // tainted [NOT DETECTED]
sink(m4.insert(m4.begin(), std::pair<char *, char *>("abc", source()))); // tainted [NOT DETECTED]
sink(m4.insert(m4.begin(), std::pair<char *, char *>("abc", source()))); // tainted
sink(m5.insert_or_assign("abc", source()).first); // tainted [NOT DETECTED]
sink(m6.insert_or_assign(m6.begin(), "abc", source())); // tainted [NOT DETECTED]
sink(m1);
sink(m2); // tainted [NOT DETECTED]
sink(m3); // tainted [NOT DETECTED]
sink(m4); // tainted [NOT DETECTED]
sink(m2); // tainted
sink(m3); // tainted
sink(m4); // tainted
sink(m5); // tainted [NOT DETECTED]
sink(m6); // tainted [NOT DETECTED]
sink(m1.find("abc"));
@@ -131,9 +131,9 @@ void test_map()
std::map<char *, char *> m8 = m2;
std::map<char *, char *> m9;
m9 = m2;
sink(m7); // tainted [NOT DETECTED]
sink(m8); // tainted [NOT DETECTED]
sink(m9); // tainted [NOT DETECTED]
sink(m7); // tainted
sink(m8); // tainted
sink(m9); // tainted
sink(m7.find("abc")); // tainted [NOT DETECTED]
sink(m8.find("abc")); // tainted [NOT DETECTED]
sink(m9.find("abc")); // tainted [NOT DETECTED]
@@ -187,16 +187,16 @@ void test_map()
std::map<char *, char *> m15, m16, m17, m18;
m15.insert(std::pair<char *, char *>(source(), source()));
m18.insert(std::pair<char *, char *>(source(), source()));
sink(m15); // tainted [NOT DETECTED]
sink(m15); // tainted
sink(m16);
sink(m17);
sink(m18); // tainted [NOT DETECTED]
sink(m18); // tainted
m15.swap(m16);
m17.swap(m18);
sink(m15);
sink(m15); // [FALSE POSITIVE]
sink(m16); // tainted [NOT DETECTED]
sink(m17); // tainted [NOT DETECTED]
sink(m18);
sink(m18); // [FALSE POSITIVE]
// merge
std::map<char *, char *> m19, m20, m21, m22;
@@ -204,26 +204,26 @@ void test_map()
m20.insert(std::pair<char *, char *>("abc", "def"));
m21.insert(std::pair<char *, char *>("abc", "def"));
m22.insert(std::pair<char *, char *>(source(), source()));
sink(m19); // tainted [NOT DETECTED]
sink(m19); // tainted
sink(m20);
sink(m21);
sink(m22); // tainted [NOT DETECTED]
sink(m22); // tainted
m15.merge(m16);
m17.merge(m18);
sink(m19); // tainted [NOT DETECTED]
sink(m19); // tainted
sink(m20); // tainted [NOT DETECTED]
sink(m21); // tainted [NOT DETECTED]
sink(m22); // tainted [NOT DETECTED]
sink(m22); // tainted
// erase, clear
std::map<char *, char *> m23;
m23.insert(std::pair<char *, char *>(source(), source()));
m23.insert(std::pair<char *, char *>(source(), source()));
sink(m23); // tainted [NOT DETECTED]
sink(m23); // tainted
sink(m23.erase(m23.begin())); // tainted [NOT DETECTED]
sink(m23); // tainted [NOT DETECTED]
sink(m23); // tainted
m23.clear();
sink(m23);
sink(m23); // [FALSE POSITIVE]
// emplace, emplace_hint
std::map<char *, char *> m24, m25;
@@ -256,13 +256,13 @@ void test_unordered_map()
sink(m1.insert(std::make_pair("abc", "def")).first);
sink(m2.insert(std::make_pair("abc", source())).first); // tainted [NOT DETECTED]
sink(m3.insert(std::make_pair(source(), "def")).first); // tainted [NOT DETECTED]
sink(m4.insert(m4.begin(), std::pair<char *, char *>("abc", source()))); // tainted [NOT DETECTED]
sink(m4.insert(m4.begin(), std::pair<char *, char *>("abc", source()))); // tainted
sink(m5.insert_or_assign("abc", source()).first); // tainted [NOT DETECTED]
sink(m6.insert_or_assign(m6.begin(), "abc", source())); // tainted [NOT DETECTED]
sink(m1);
sink(m2); // tainted [NOT DETECTED]
sink(m3); // tainted [NOT DETECTED]
sink(m4); // tainted [NOT DETECTED]
sink(m2); // tainted
sink(m3); // tainted
sink(m4); // tainted
sink(m5); // tainted [NOT DETECTED]
sink(m6); // tainted [NOT DETECTED]
sink(m1.find("abc"));
@@ -283,9 +283,9 @@ void test_unordered_map()
std::unordered_map<char *, char *> m8 = m2;
std::unordered_map<char *, char *> m9;
m9 = m2;
sink(m7); // tainted [NOT DETECTED]
sink(m8); // tainted [NOT DETECTED]
sink(m9); // tainted [NOT DETECTED]
sink(m7); // tainted
sink(m8); // tainted
sink(m9); // tainted
sink(m7.find("abc")); // tainted [NOT DETECTED]
sink(m8.find("abc")); // tainted [NOT DETECTED]
sink(m9.find("abc")); // tainted [NOT DETECTED]
@@ -336,16 +336,16 @@ void test_unordered_map()
std::unordered_map<char *, char *> m15, m16, m17, m18;
m15.insert(std::pair<char *, char *>(source(), source()));
m18.insert(std::pair<char *, char *>(source(), source()));
sink(m15); // tainted [NOT DETECTED]
sink(m15); // tainted
sink(m16);
sink(m17);
sink(m18); // tainted [NOT DETECTED]
sink(m18); // tainted
m15.swap(m16);
m17.swap(m18);
sink(m15);
sink(m15); // [FALSE POSITIVE]
sink(m16); // tainted [NOT DETECTED]
sink(m17); // tainted [NOT DETECTED]
sink(m18);
sink(m18); // [FALSE POSITIVE]
// merge
std::unordered_map<char *, char *> m19, m20, m21, m22;
@@ -353,26 +353,26 @@ void test_unordered_map()
m20.insert(std::pair<char *, char *>("abc", "def"));
m21.insert(std::pair<char *, char *>("abc", "def"));
m22.insert(std::pair<char *, char *>(source(), source()));
sink(m19); // tainted [NOT DETECTED]
sink(m19); // tainted
sink(m20);
sink(m21);
sink(m22); // tainted [NOT DETECTED]
sink(m22); // tainted
m15.merge(m16);
m17.merge(m18);
sink(m19); // tainted [NOT DETECTED]
sink(m19); // tainted
sink(m20); // tainted [NOT DETECTED]
sink(m21); // tainted [NOT DETECTED]
sink(m22); // tainted [NOT DETECTED]
sink(m22); // tainted
// erase, clear
std::unordered_map<char *, char *> m23;
m23.insert(std::pair<char *, char *>(source(), source()));
m23.insert(std::pair<char *, char *>(source(), source()));
sink(m23); // tainted [NOT DETECTED]
sink(m23); // tainted
sink(m23.erase(m23.begin())); // tainted [NOT DETECTED]
sink(m23); // tainted [NOT DETECTED]
sink(m23); // tainted
m23.clear();
sink(m23);
sink(m23); // [FALSE POSITIVE]
// emplace, emplace_hint
std::unordered_map<char *, char *> m24, m25;

View File

@@ -46,10 +46,80 @@
| map.cpp:83:7:83:32 | call to pair | map.cpp:83:17:83:22 | call to source |
| map.cpp:86:7:86:32 | call to pair | map.cpp:86:24:86:29 | call to source |
| map.cpp:92:7:92:7 | call to pair | map.cpp:91:33:91:38 | call to source |
| map.cpp:107:10:107:15 | call to insert | map.cpp:107:62:107:67 | call to source |
| map.cpp:111:7:111:8 | call to map | map.cpp:105:39:105:44 | call to source |
| map.cpp:112:7:112:8 | call to map | map.cpp:106:32:106:37 | call to source |
| map.cpp:113:7:113:8 | call to map | map.cpp:107:62:107:67 | call to source |
| 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: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 |
| map.cpp:190:7:190:9 | call to map | map.cpp:188:49:188:54 | call to source |
| map.cpp:193:7:193:9 | call to map | map.cpp:189:39:189:44 | call to source |
| map.cpp:193:7:193:9 | call to map | map.cpp:189:49:189:54 | call to source |
| map.cpp:196:7:196:9 | call to map | map.cpp:188:39:188:44 | call to source |
| map.cpp:196:7:196:9 | call to map | map.cpp:188:49:188:54 | call to source |
| map.cpp:199:7:199:9 | call to map | map.cpp:189:39:189:44 | call to source |
| map.cpp:199:7:199:9 | call to map | map.cpp:189:49:189:54 | call to source |
| map.cpp:207:7:207:9 | call to map | map.cpp:203:39:203:44 | call to source |
| map.cpp:207:7:207:9 | call to map | map.cpp:203:49:203:54 | call to source |
| map.cpp:210:7:210:9 | call to map | map.cpp:206:39:206:44 | call to source |
| map.cpp:210:7:210:9 | call to map | map.cpp:206:49:206:54 | call to source |
| map.cpp:213:7:213:9 | call to map | map.cpp:203:39:203:44 | call to source |
| map.cpp:213:7:213:9 | call to map | map.cpp:203:49:203:54 | call to source |
| map.cpp:216:7:216:9 | call to map | map.cpp:206:39:206:44 | call to source |
| map.cpp:216:7:216:9 | call to map | map.cpp:206:49:206:54 | call to source |
| map.cpp:222:7:222:9 | call to map | map.cpp:220:39:220:44 | call to source |
| map.cpp:222:7:222:9 | call to map | map.cpp:220:49:220:54 | call to source |
| map.cpp:222:7:222:9 | call to map | map.cpp:221:39:221:44 | call to source |
| map.cpp:222:7:222:9 | call to map | map.cpp:221:49:221:54 | call to source |
| map.cpp:224:7:224:9 | call to map | map.cpp:220:39:220:44 | call to source |
| map.cpp:224:7:224:9 | call to map | map.cpp:220:49:220:54 | call to source |
| map.cpp:224:7:224:9 | call to map | map.cpp:221:39:221:44 | call to source |
| map.cpp:224:7:224:9 | call to map | map.cpp:221:49:221:54 | call to source |
| map.cpp:226:7:226:9 | call to map | map.cpp:220:39:220:44 | call to source |
| map.cpp:226:7:226:9 | call to map | map.cpp:220:49:220:54 | call to source |
| map.cpp:226:7:226:9 | call to map | map.cpp:221:39:221:44 | call to source |
| map.cpp:226:7:226:9 | call to map | map.cpp:221:49:221:54 | call to source |
| map.cpp:259:10:259:15 | call to insert | map.cpp:259:62:259:67 | call to source |
| map.cpp:263:7:263:8 | call to unordered_map | map.cpp:257:39:257:44 | call to source |
| map.cpp:264:7:264:8 | call to unordered_map | map.cpp:258:32:258:37 | call to source |
| map.cpp:265:7:265:8 | call to unordered_map | map.cpp:259:62:259:67 | call to source |
| 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: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 |
| map.cpp:339:7:339:9 | call to unordered_map | map.cpp:337:49:337:54 | call to source |
| map.cpp:342:7:342:9 | call to unordered_map | map.cpp:338:39:338:44 | call to source |
| map.cpp:342:7:342:9 | call to unordered_map | map.cpp:338:49:338:54 | call to source |
| map.cpp:345:7:345:9 | call to unordered_map | map.cpp:337:39:337:44 | call to source |
| map.cpp:345:7:345:9 | call to unordered_map | map.cpp:337:49:337:54 | call to source |
| map.cpp:348:7:348:9 | call to unordered_map | map.cpp:338:39:338:44 | call to source |
| map.cpp:348:7:348:9 | call to unordered_map | map.cpp:338:49:338:54 | call to source |
| map.cpp:356:7:356:9 | call to unordered_map | map.cpp:352:39:352:44 | call to source |
| map.cpp:356:7:356:9 | call to unordered_map | map.cpp:352:49:352:54 | call to source |
| map.cpp:359:7:359:9 | call to unordered_map | map.cpp:355:39:355:44 | call to source |
| map.cpp:359:7:359:9 | call to unordered_map | map.cpp:355:49:355:54 | call to source |
| map.cpp:362:7:362:9 | call to unordered_map | map.cpp:352:39:352:44 | call to source |
| map.cpp:362:7:362:9 | call to unordered_map | map.cpp:352:49:352:54 | call to source |
| map.cpp:365:7:365:9 | call to unordered_map | map.cpp:355:39:355:44 | call to source |
| map.cpp:365:7:365:9 | call to unordered_map | map.cpp:355:49:355:54 | call to source |
| map.cpp:371:7:371:9 | call to unordered_map | map.cpp:369:39:369:44 | call to source |
| map.cpp:371:7:371:9 | call to unordered_map | map.cpp:369:49:369:54 | call to source |
| map.cpp:371:7:371:9 | call to unordered_map | map.cpp:370:39:370:44 | call to source |
| map.cpp:371:7:371:9 | call to unordered_map | map.cpp:370:49:370:54 | call to source |
| map.cpp:373:7:373:9 | call to unordered_map | map.cpp:369:39:369:44 | call to source |
| map.cpp:373:7:373:9 | call to unordered_map | map.cpp:369:49:369:54 | call to source |
| map.cpp:373:7:373:9 | call to unordered_map | map.cpp:370:39:370:44 | call to source |
| map.cpp:373:7:373:9 | call to unordered_map | map.cpp:370:49:370:54 | call to source |
| map.cpp:375:7:375:9 | call to unordered_map | map.cpp:369:39:369:44 | call to source |
| map.cpp:375:7:375:9 | call to unordered_map | map.cpp:369:49:369:54 | call to source |
| map.cpp:375:7:375:9 | call to unordered_map | map.cpp:370:39:370:44 | call to source |
| map.cpp:375:7:375:9 | call to unordered_map | map.cpp:370:49:370:54 | call to source |
| movableclass.cpp:44:8:44:9 | s1 | movableclass.cpp:39:21:39:26 | call to source |
| movableclass.cpp:45:8:45:9 | s2 | movableclass.cpp:40:23:40:28 | call to source |
| movableclass.cpp:46:8:46:9 | s3 | movableclass.cpp:42:8:42:13 | call to source |

View File

@@ -42,6 +42,78 @@
| map.cpp:94:15:94:19 | map.cpp:91:33:91:38 | IR only |
| map.cpp:95:15:95:20 | map.cpp:91:33:91:38 | IR only |
| map.cpp:96:9:96:14 | map.cpp:91:33:91:38 | IR only |
| map.cpp:105:7:105:54 | map.cpp:105:39:105:44 | IR only |
| map.cpp:106:7:106:54 | map.cpp:106:32:106:37 | IR only |
| map.cpp:111:7:111:8 | map.cpp:105:39:105:44 | AST only |
| map.cpp:112:7:112:8 | map.cpp:106:32:106:37 | AST only |
| map.cpp:113:7:113:8 | map.cpp:107:62:107:67 | AST only |
| 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: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 |
| map.cpp:193:7:193:9 | map.cpp:189:49:189:54 | AST only |
| map.cpp:196:7:196:9 | map.cpp:188:39:188:44 | AST only |
| map.cpp:196:7:196:9 | map.cpp:188:49:188:54 | AST only |
| map.cpp:199:7:199:9 | map.cpp:189:39:189:44 | AST only |
| map.cpp:199:7:199:9 | map.cpp:189:49:189:54 | AST only |
| map.cpp:207:7:207:9 | map.cpp:203:39:203:44 | AST only |
| map.cpp:207:7:207:9 | map.cpp:203:49:203:54 | AST only |
| map.cpp:210:7:210:9 | map.cpp:206:39:206:44 | AST only |
| map.cpp:210:7:210:9 | map.cpp:206:49:206:54 | AST only |
| map.cpp:213:7:213:9 | map.cpp:203:39:203:44 | AST only |
| map.cpp:213:7:213:9 | map.cpp:203:49:203:54 | AST only |
| map.cpp:216:7:216:9 | map.cpp:206:39:206:44 | AST only |
| map.cpp:216:7:216:9 | map.cpp:206:49:206:54 | AST only |
| map.cpp:222:7:222:9 | map.cpp:220:39:220:44 | AST only |
| map.cpp:222:7:222:9 | map.cpp:220:49:220:54 | AST only |
| map.cpp:222:7:222:9 | map.cpp:221:39:221:44 | AST only |
| map.cpp:222:7:222:9 | map.cpp:221:49:221:54 | AST only |
| map.cpp:224:7:224:9 | map.cpp:220:39:220:44 | AST only |
| map.cpp:224:7:224:9 | map.cpp:220:49:220:54 | AST only |
| map.cpp:224:7:224:9 | map.cpp:221:39:221:44 | AST only |
| map.cpp:224:7:224:9 | map.cpp:221:49:221:54 | AST only |
| map.cpp:226:7:226:9 | map.cpp:220:39:220:44 | AST only |
| map.cpp:226:7:226:9 | map.cpp:220:49:220:54 | AST only |
| map.cpp:226:7:226:9 | map.cpp:221:39:221:44 | AST only |
| map.cpp:226:7:226:9 | map.cpp:221:49:221:54 | AST only |
| map.cpp:257:7:257:54 | map.cpp:257:39:257:44 | IR only |
| map.cpp:258:7:258:54 | map.cpp:258:32:258:37 | IR only |
| map.cpp:263:7:263:8 | map.cpp:257:39:257:44 | AST only |
| map.cpp:264:7:264:8 | map.cpp:258:32:258:37 | AST only |
| map.cpp:265:7:265:8 | map.cpp:259:62:259:67 | AST only |
| 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: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 |
| map.cpp:342:7:342:9 | map.cpp:338:49:338:54 | AST only |
| map.cpp:345:7:345:9 | map.cpp:337:39:337:44 | AST only |
| map.cpp:345:7:345:9 | map.cpp:337:49:337:54 | AST only |
| map.cpp:348:7:348:9 | map.cpp:338:39:338:44 | AST only |
| map.cpp:348:7:348:9 | map.cpp:338:49:338:54 | AST only |
| map.cpp:356:7:356:9 | map.cpp:352:39:352:44 | AST only |
| map.cpp:356:7:356:9 | map.cpp:352:49:352:54 | AST only |
| map.cpp:359:7:359:9 | map.cpp:355:39:355:44 | AST only |
| map.cpp:359:7:359:9 | map.cpp:355:49:355:54 | AST only |
| map.cpp:362:7:362:9 | map.cpp:352:39:352:44 | AST only |
| map.cpp:362:7:362:9 | map.cpp:352:49:352:54 | AST only |
| map.cpp:365:7:365:9 | map.cpp:355:39:355:44 | AST only |
| map.cpp:365:7:365:9 | map.cpp:355:49:355:54 | AST only |
| map.cpp:371:7:371:9 | map.cpp:369:39:369:44 | AST only |
| map.cpp:371:7:371:9 | map.cpp:369:49:369:54 | AST only |
| map.cpp:371:7:371:9 | map.cpp:370:39:370:44 | AST only |
| map.cpp:371:7:371:9 | map.cpp:370:49:370:54 | AST only |
| map.cpp:373:7:373:9 | map.cpp:369:39:369:44 | AST only |
| map.cpp:373:7:373:9 | map.cpp:369:49:369:54 | AST only |
| map.cpp:373:7:373:9 | map.cpp:370:39:370:44 | AST only |
| map.cpp:373:7:373:9 | map.cpp:370:49:370:54 | AST only |
| map.cpp:375:7:375:9 | map.cpp:369:39:369:44 | AST only |
| map.cpp:375:7:375:9 | map.cpp:369:49:369:54 | AST only |
| map.cpp:375:7:375:9 | map.cpp:370:39:370:44 | AST only |
| map.cpp:375:7:375:9 | map.cpp:370:49:370:54 | AST only |
| movableclass.cpp:65:11:65:11 | movableclass.cpp:65:13:65:18 | AST only |
| movableclass.cpp:65:11:65:21 | movableclass.cpp:65:13:65:18 | IR only |
| smart_pointer.cpp:12:10:12:10 | smart_pointer.cpp:11:52:11:57 | AST only |

View File

@@ -78,8 +78,14 @@
| map.cpp:94:15:94:19 | first | map.cpp:91:33:91:38 | call to source |
| map.cpp:95:15:95:20 | second | map.cpp:91:33:91:38 | call to source |
| map.cpp:96:9:96:14 | second | map.cpp:91:33:91:38 | call to source |
| 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: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: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 |