C++: Model taint flow only when the second component of a pair would be tainted.

This commit is contained in:
Geoffrey White 2020-10-01 17:38:09 +01:00
Родитель 952cc89c2a
Коммит ad9f306352
6 изменённых файлов: 22 добавлений и 183 удалений

Просмотреть файл

@ -20,8 +20,9 @@ class StdPairConstructor extends Constructor, TaintFunction {
}
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
// taint flow from any parameter of a value type to the qualifier
input.isParameterDeref(getAValueTypeParameterIndex()) and
// taint flow from second parameter of a value type to the qualifier
getAValueTypeParameterIndex() = 1 and
input.isParameterDeref(1) and
(
output.isReturnValue() // TODO: this is only needed for AST data flow, which treats constructors as returning the new object
or
@ -37,8 +38,8 @@ class StdMakePair extends TaintFunction {
StdMakePair() { this.hasQualifiedName("std", "make_pair") }
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
// taint flow from any parameter to the returned object
input.isParameterDeref([0, 1]) and
// taint flow from first parameter to the returned object
input.isParameterDeref(1) and
output.isReturnValue()
}
}

Просмотреть файл

@ -429,7 +429,6 @@
| map.cpp:31:7:31:7 | c [post update] | map.cpp:32:7:32:7 | c | |
| map.cpp:31:7:31:7 | c [post update] | map.cpp:33:7:33:7 | c | |
| map.cpp:32:7:32:7 | c [post update] | map.cpp:33:7:33:7 | c | |
| map.cpp:35:30:35:34 | 123 | map.cpp:35:30:35:42 | call to pair | TAINT |
| map.cpp:35:30:35:42 | call to pair | map.cpp:36:7:36:7 | d | |
| map.cpp:35:30:35:42 | call to pair | map.cpp:37:7:37:7 | d | |
| map.cpp:35:30:35:42 | call to pair | map.cpp:38:7:38:7 | d | |
@ -437,7 +436,6 @@
| map.cpp:36:7:36:7 | d [post update] | map.cpp:37:7:37:7 | d | |
| map.cpp:36:7:36:7 | d [post update] | map.cpp:38:7:38:7 | d | |
| map.cpp:37:7:37:7 | d [post update] | map.cpp:38:7:38:7 | d | |
| map.cpp:40:30:40:35 | call to source | map.cpp:40:30:40:45 | call to pair | TAINT |
| map.cpp:40:30:40:45 | call to pair | map.cpp:41:7:41:7 | e | |
| map.cpp:40:30:40:45 | call to pair | map.cpp:42:7:42:7 | e | |
| map.cpp:40:30:40:45 | call to pair | map.cpp:43:7:43:7 | e | |
@ -445,7 +443,6 @@
| map.cpp:41:7:41:7 | e [post update] | map.cpp:42:7:42:7 | e | |
| map.cpp:41:7:41:7 | e [post update] | map.cpp:43:7:43:7 | e | |
| map.cpp:42:7:42:7 | e [post update] | map.cpp:43:7:43:7 | e | |
| map.cpp:45:30:45:34 | 123 | map.cpp:45:30:45:45 | call to pair | TAINT |
| map.cpp:45:30:45:45 | call to pair | map.cpp:46:7:46:7 | f | |
| map.cpp:45:30:45:45 | call to pair | map.cpp:47:7:47:7 | f | |
| map.cpp:45:30:45:45 | call to pair | map.cpp:48:7:48:7 | f | |
@ -472,25 +469,21 @@
| map.cpp:57:7:57:7 | h [post update] | map.cpp:58:7:58:7 | h | |
| map.cpp:57:7:57:7 | h [post update] | map.cpp:59:7:59:7 | h | |
| map.cpp:58:7:58:7 | h [post update] | map.cpp:59:7:59:7 | h | |
| map.cpp:61:30:61:34 | 123 | map.cpp:61:30:61:42 | call to pair | TAINT |
| map.cpp:61:30:61:42 | call to pair | map.cpp:65:3:65:3 | i | |
| map.cpp:61:30:61:42 | call to pair | map.cpp:67:7:67:7 | i | |
| map.cpp:61:30:61:42 | call to pair | map.cpp:68:7:68:7 | i | |
| map.cpp:61:30:61:42 | call to pair | map.cpp:69:7:69:7 | i | |
| map.cpp:61:37:61:41 | 456 | map.cpp:61:30:61:42 | call to pair | TAINT |
| map.cpp:62:30:62:34 | 123 | map.cpp:62:30:62:45 | call to pair | TAINT |
| map.cpp:62:30:62:45 | call to pair | map.cpp:65:10:65:10 | j | |
| map.cpp:62:30:62:45 | call to pair | map.cpp:70:7:70:7 | j | |
| map.cpp:62:30:62:45 | call to pair | map.cpp:71:7:71:7 | j | |
| map.cpp:62:30:62:45 | call to pair | map.cpp:72:7:72:7 | j | |
| map.cpp:62:37:62:42 | call to source | map.cpp:62:30:62:45 | call to pair | TAINT |
| map.cpp:63:30:63:34 | 123 | map.cpp:63:30:63:45 | call to pair | TAINT |
| map.cpp:63:30:63:45 | call to pair | map.cpp:66:2:66:2 | k | |
| map.cpp:63:30:63:45 | call to pair | map.cpp:73:7:73:7 | k | |
| map.cpp:63:30:63:45 | call to pair | map.cpp:74:7:74:7 | k | |
| map.cpp:63:30:63:45 | call to pair | map.cpp:75:7:75:7 | k | |
| map.cpp:63:37:63:42 | call to source | map.cpp:63:30:63:45 | call to pair | TAINT |
| map.cpp:64:30:64:34 | 123 | map.cpp:64:30:64:42 | call to pair | TAINT |
| map.cpp:64:30:64:42 | call to pair | map.cpp:66:9:66:9 | l | |
| map.cpp:64:30:64:42 | call to pair | map.cpp:76:7:76:7 | l | |
| map.cpp:64:30:64:42 | call to pair | map.cpp:77:7:77:7 | l | |
@ -525,25 +518,16 @@
| map.cpp:76:7:76:7 | l [post update] | map.cpp:78:7:78:7 | l | |
| map.cpp:77:7:77:7 | l [post update] | map.cpp:78:7:78:7 | l | |
| map.cpp:80:7:80:15 | call to make_pair | map.cpp:80:7:80:29 | call to pair | TAINT |
| map.cpp:80:17:80:21 | 123 | map.cpp:80:7:80:15 | call to make_pair | TAINT |
| map.cpp:80:24:80:28 | 456 | map.cpp:80:7:80:15 | call to make_pair | TAINT |
| map.cpp:81:17:81:21 | 123 | map.cpp:81:7:81:15 | call to make_pair | TAINT |
| map.cpp:81:24:81:28 | 456 | map.cpp:81:7:81:15 | call to make_pair | TAINT |
| map.cpp:82:17:82:21 | 123 | map.cpp:82:7:82:15 | call to make_pair | TAINT |
| map.cpp:82:24:82:28 | 456 | map.cpp:82:7:82:15 | call to make_pair | TAINT |
| map.cpp:83:7:83:15 | call to make_pair | map.cpp:83:7:83:32 | call to pair | TAINT |
| map.cpp:83:17:83:22 | call to source | map.cpp:83:7:83:15 | call to make_pair | TAINT |
| map.cpp:83:27:83:31 | 456 | map.cpp:83:7:83:15 | call to make_pair | TAINT |
| map.cpp:84:17:84:22 | call to source | map.cpp:84:7:84:15 | call to make_pair | TAINT |
| map.cpp:84:27:84:31 | 456 | map.cpp:84:7:84:15 | call to make_pair | TAINT |
| map.cpp:85:17:85:22 | call to source | map.cpp:85:7:85:15 | call to make_pair | TAINT |
| map.cpp:85:27:85:31 | 456 | map.cpp:85:7:85:15 | call to make_pair | TAINT |
| map.cpp:86:7:86:15 | call to make_pair | map.cpp:86:7:86:32 | call to pair | TAINT |
| map.cpp:86:17:86:21 | 123 | map.cpp:86:7:86:15 | call to make_pair | TAINT |
| map.cpp:86:24:86:29 | call to source | map.cpp:86:7:86:15 | call to make_pair | TAINT |
| map.cpp:87:17:87:21 | 123 | map.cpp:87:7:87:15 | call to make_pair | TAINT |
| map.cpp:87:24:87:29 | call to source | map.cpp:87:7:87:15 | call to make_pair | TAINT |
| map.cpp:88:17:88:21 | 123 | map.cpp:88:7:88:15 | call to make_pair | TAINT |
| map.cpp:88:24:88:29 | call to source | map.cpp:88:7:88:15 | call to make_pair | TAINT |
| map.cpp:91:6:91:14 | call to make_pair | map.cpp:91:6:91:49 | call to pair | TAINT |
| map.cpp:91:6:91:49 | call to pair | map.cpp:91:2:91:49 | ... = ... | |
@ -552,8 +536,6 @@
| map.cpp:91:6:91:49 | call to pair | map.cpp:94:7:94:7 | m | |
| map.cpp:91:6:91:49 | call to pair | map.cpp:95:7:95:7 | m | |
| map.cpp:91:6:91:49 | call to pair | map.cpp:96:7:96:7 | m | |
| map.cpp:91:16:91:24 | call to make_pair | map.cpp:91:6:91:14 | call to make_pair | TAINT |
| map.cpp:91:26:91:30 | 123 | map.cpp:91:16:91:24 | call to make_pair | TAINT |
| map.cpp:91:33:91:38 | call to source | map.cpp:91:16:91:24 | call to make_pair | TAINT |
| map.cpp:91:44:91:48 | 789 | map.cpp:91:6:91:14 | call to make_pair | TAINT |
| map.cpp:92:7:92:7 | m | map.cpp:92:7:92:7 | call to pair | TAINT |
@ -616,7 +598,6 @@
| 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 | |
| map.cpp:105:7:105:8 | ref arg m2 | map.cpp:111:7:111:8 | m2 | |
@ -637,7 +618,6 @@
| 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 | |
| map.cpp:106:7:106:8 | ref arg m3 | map.cpp:112:7:112:8 | m3 | |
@ -649,7 +629,6 @@
| 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 | |
| map.cpp:107:7:107:8 | ref arg m4 | map.cpp:113:7:113:8 | m4 | |
@ -666,7 +645,6 @@
| 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 |
| map.cpp:108:7:108:8 | ref arg m5 | map.cpp:114:7:114:8 | m5 | |
| map.cpp:108:7:108:8 | ref arg m5 | map.cpp:120:7:120:8 | m5 | |
@ -914,7 +892,6 @@
| 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 | |
@ -922,20 +899,17 @@
| 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 | |
| map.cpp:179:7:179:8 | ref arg m2 | map.cpp:181:7:181:8 | m2 | |
@ -991,7 +965,6 @@
| 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 |
| map.cpp:189:2:189:4 | ref arg m18 | map.cpp:193:7:193:9 | m18 | |
| map.cpp:189:2:189:4 | ref arg m18 | map.cpp:195:11:195:13 | m18 | |
@ -1001,7 +974,6 @@
| 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 |
| map.cpp:190:7:190:9 | m15 | map.cpp:190:7:190:9 | call to map | |
| map.cpp:191:7:191:9 | m16 | map.cpp:191:7:191:9 | call to map | |
@ -1049,7 +1021,6 @@
| 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 | |
@ -1057,7 +1028,6 @@
| 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 | |
@ -1065,7 +1035,6 @@
| 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 | |
@ -1073,7 +1042,6 @@
| 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 |
| map.cpp:207:7:207:9 | m19 | map.cpp:207:7:207:9 | call to map | |
| map.cpp:208:7:208:9 | m20 | map.cpp:208:7:208:9 | call to map | |
@ -1107,7 +1075,6 @@
| 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 |
| map.cpp:221:2:221:4 | ref arg m23 | map.cpp:222:7:222:9 | m23 | |
| map.cpp:221:2:221:4 | ref arg m23 | map.cpp:223:7:223:9 | m23 | |
@ -1119,7 +1086,6 @@
| 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 |
| map.cpp:222:7:222:9 | m23 | map.cpp:222:7:222:9 | call to map | |
| map.cpp:223:7:223:9 | m23 | map.cpp:223:11:223:15 | call to erase | TAINT |
@ -1278,7 +1244,6 @@
| 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 | |
| map.cpp:257:7:257:8 | ref arg m2 | map.cpp:263:7:263:8 | m2 | |
@ -1296,7 +1261,6 @@
| 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 | |
| map.cpp:258:7:258:8 | ref arg m3 | map.cpp:264:7:264:8 | m3 | |
@ -1308,7 +1272,6 @@
| 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 | |
| map.cpp:259:7:259:8 | ref arg m4 | map.cpp:265:7:265:8 | m4 | |
@ -1325,7 +1288,6 @@
| 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 |
| map.cpp:260:7:260:8 | ref arg m5 | map.cpp:266:7:266:8 | m5 | |
| map.cpp:260:7:260:8 | ref arg m5 | map.cpp:272:7:272:8 | m5 | |
@ -1561,7 +1523,6 @@
| 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 | |
@ -1569,20 +1530,17 @@
| 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 | |
| map.cpp:331:7:331:8 | ref arg m2 | map.cpp:333:7:333:8 | m2 | |
@ -1623,7 +1581,6 @@
| 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 |
| map.cpp:338:2:338:4 | ref arg m18 | map.cpp:342:7:342:9 | m18 | |
| map.cpp:338:2:338:4 | ref arg m18 | map.cpp:344:11:344:13 | m18 | |
@ -1633,7 +1590,6 @@
| 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 |
| map.cpp:339:7:339:9 | m15 | map.cpp:339:7:339:9 | call to unordered_map | |
| map.cpp:340:7:340:9 | m16 | map.cpp:340:7:340:9 | call to unordered_map | |
@ -1681,7 +1637,6 @@
| 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 | |
@ -1689,7 +1644,6 @@
| 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 | |
@ -1697,7 +1651,6 @@
| 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 | |
@ -1705,7 +1658,6 @@
| 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 |
| map.cpp:356:7:356:9 | m19 | map.cpp:356:7:356:9 | call to unordered_map | |
| map.cpp:357:7:357:9 | m20 | map.cpp:357:7:357:9 | call to unordered_map | |
@ -1739,7 +1691,6 @@
| 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 |
| map.cpp:370:2:370:4 | ref arg m23 | map.cpp:371:7:371:9 | m23 | |
| map.cpp:370:2:370:4 | ref arg m23 | map.cpp:372:7:372:9 | m23 | |
@ -1751,7 +1702,6 @@
| 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 |
| map.cpp:371:7:371:9 | m23 | map.cpp:371:7:371:9 | call to unordered_map | |
| map.cpp:372:7:372:9 | m23 | map.cpp:372:11:372:15 | call to erase | TAINT |

Просмотреть файл

@ -39,8 +39,8 @@ void test_pair()
std::pair<char *, char *> e(source(), "456");
sink(e.first); // tainted
sink(e.second); // [FALSE POSITIVE]
sink(e); // tainted
sink(e.second);
sink(e); // tainted [NOT DETECTED]
std::pair<char *, char *> f("123", source());
sink(f.first); // [FALSE POSITIVE]
@ -80,19 +80,19 @@ void test_pair()
sink(make_pair("123", "456"));
sink(make_pair("123", "456").first);
sink(make_pair("123", "456").second);
sink(make_pair(source(), "456")); // tainted
sink(make_pair(source(), "456").first); // tainted
sink(make_pair(source(), "456").second); // [FALSE POSITIVE]
sink(make_pair(source(), "456")); // tainted [NOT DETECTED]
sink(make_pair(source(), "456").first); // tainted [NOT DETECTED]
sink(make_pair(source(), "456").second);
sink(make_pair("123", source())); // tainted
sink(make_pair("123", source()).first); // [FALSE POSITIVE]
sink(make_pair("123", source()).second); // tainted
std::pair<std::pair<char *, char *>, char *> m;
m = make_pair(make_pair("123", source()), "789");
sink(m); // tainted
sink(m.first); // tainted
sink(m.first.first); // [FALSE POSITIVE]
sink(m.first.second); // tainted
sink(m); // tainted [NOT DETECTED]
sink(m.first); // tainted [NOT DETECTED]
sink(m.first.first);
sink(m.first.second); // tainted [NOT DETECTED]
sink(m.second);
}
@ -109,19 +109,19 @@ void test_map()
sink(m6.insert_or_assign(m6.begin(), "abc", source())); // tainted
sink(m1);
sink(m2); // tainted
sink(m3); // tainted
sink(m3); // tainted [NOT DETECTED]
sink(m4); // tainted
sink(m5); // tainted
sink(m6); // tainted
sink(m1.find("abc"));
sink(m2.find("abc")); // tainted
sink(m3.find("abc")); // [FALSE POSITIVE]
sink(m3.find("abc"));
sink(m4.find("abc")); // tainted
sink(m5.find("abc")); // tainted
sink(m6.find("abc")); // tainted
sink(m1.find("def"));
sink(m2.find("def")); // [FALSE POSITIVE]
sink(m3.find("def")); // [FALSE POSITIVE]
sink(m3.find("def"));
sink(m4.find("def")); // [FALSE POSITIVE]
sink(m5.find("def")); // [FALSE POSITIVE]
sink(m6.find("def")); // [FALSE POSITIVE]
@ -154,7 +154,7 @@ void test_map()
}
for (i3 = m3.begin(); i3 != m3.end(); i3++)
{
sink(*i3); // tainted
sink(*i3); // tainted [NOT DETECTED]
sink(i2->first); // tainted
sink(i2->second); // [FALSE POSITIVE]
}
@ -261,19 +261,19 @@ void test_unordered_map()
sink(m6.insert_or_assign(m6.begin(), "abc", source())); // tainted
sink(m1);
sink(m2); // tainted
sink(m3); // tainted
sink(m3); // tainted [NOT DETECTED]
sink(m4); // tainted
sink(m5); // tainted
sink(m6); // tainted
sink(m1.find("abc"));
sink(m2.find("abc")); // tainted
sink(m3.find("abc")); // [FALSE POSITIVE]
sink(m3.find("abc"));
sink(m4.find("abc")); // tainted
sink(m5.find("abc")); // tainted
sink(m6.find("abc")); // tainted
sink(m1.find("def"));
sink(m2.find("def")); // [FALSE POSITIVE]
sink(m3.find("def")); // [FALSE POSITIVE]
sink(m3.find("def"));
sink(m4.find("def")); // [FALSE POSITIVE]
sink(m5.find("def")); // [FALSE POSITIVE]
sink(m6.find("def")); // [FALSE POSITIVE]
@ -306,7 +306,7 @@ void test_unordered_map()
}
for (i3 = m3.begin(); i3 != m3.end(); i3++)
{
sink(*i3); // tainted
sink(*i3); // tainted [NOT DETECTED]
sink(i2->first); // tainted
sink(i2->second); // [FALSE POSITIVE]
}

Просмотреть файл

@ -36,7 +36,6 @@
| map.cpp:26:9:26:13 | first | map.cpp:25:12:25:17 | call to source |
| map.cpp:32:9:32:14 | second | map.cpp:30:13:30:18 | call to source |
| map.cpp:41:9:41:13 | first | map.cpp:40:30:40:35 | call to source |
| map.cpp:43:7:43:7 | e | map.cpp:40:30:40:35 | call to source |
| map.cpp:47:9:47:14 | second | map.cpp:45:37:45:42 | call to source |
| map.cpp:48:7:48:7 | f | map.cpp:45:37:45:42 | call to source |
| map.cpp:52:9:52:14 | second | map.cpp:45:37:45:42 | call to source |
@ -49,23 +48,18 @@
| map.cpp:74:9:74:14 | second | map.cpp:63:37:63:42 | call to source |
| map.cpp:75:7:75:7 | k | map.cpp:63:37:63:42 | call to source |
| map.cpp:78:7:78:7 | l | map.cpp:63:37:63:42 | call to source |
| 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:109:10:109:25 | call to insert_or_assign | map.cpp:109:46:109:51 | 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:114:7:114:8 | call to map | map.cpp:108:34:108:39 | call to source |
| map.cpp:115:7:115:8 | call to map | map.cpp:109:46:109:51 | call to source |
| map.cpp:117:10:117:13 | call to find | map.cpp:105:39:105:44 | call to source |
| map.cpp:118:10:118:13 | call to find | map.cpp:106:32:106:37 | call to source |
| map.cpp:119:10:119:13 | call to find | map.cpp:107:62:107:67 | call to source |
| map.cpp:120:10:120:13 | call to find | map.cpp:108:34:108:39 | call to source |
| map.cpp:121:10:121:13 | call to find | map.cpp:109:46:109:51 | call to source |
| map.cpp:123:10:123:13 | call to find | map.cpp:105:39:105:44 | call to source |
| map.cpp:124:10:124:13 | call to find | map.cpp:106:32:106:37 | call to source |
| map.cpp:125:10:125:13 | call to find | map.cpp:107:62:107:67 | call to source |
| map.cpp:126:10:126:13 | call to find | map.cpp:108:34:108:39 | call to source |
| map.cpp:127:10:127:13 | call to find | map.cpp:109:46:109:51 | call to source |
@ -76,61 +70,39 @@
| map.cpp:138:10:138:13 | call to find | map.cpp:105:39:105:44 | call to source |
| map.cpp:139:10:139:13 | call to find | 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:169:10:169:10 | call to operator[] | map.cpp:165:20:165:25 | call to source |
| map.cpp:171:10:171:10 | call to operator[] | 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:197:7:197:9 | call to map | map.cpp:188:39:188:44 | call to source |
| map.cpp:197:7:197:9 | call to map | map.cpp:188:49:188:54 | call to source |
| map.cpp:198:7:198:9 | call to map | map.cpp:189:39:189:44 | call to source |
| map.cpp:198:7:198:9 | call to map | map.cpp:189:49:189: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:223:11:223:15 | call to erase | map.cpp:220:39:220:44 | call to source |
| map.cpp:223:11:223:15 | call to erase | map.cpp:220:49:220:54 | call to source |
| map.cpp:223:11:223:15 | call to erase | map.cpp:221:39:221:44 | call to source |
| map.cpp:223:11:223:15 | call to erase | 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:261:10:261:25 | call to insert_or_assign | map.cpp:261:46:261:51 | 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:266:7:266:8 | call to unordered_map | map.cpp:260:34:260:39 | call to source |
| map.cpp:267:7:267:8 | call to unordered_map | map.cpp:261:46:261:51 | call to source |
| map.cpp:269:10:269:13 | call to find | map.cpp:257:39:257:44 | call to source |
| map.cpp:270:10:270:13 | call to find | map.cpp:258:32:258:37 | call to source |
| map.cpp:271:10:271:13 | call to find | map.cpp:259:62:259:67 | call to source |
| map.cpp:272:10:272:13 | call to find | map.cpp:260:34:260:39 | call to source |
| map.cpp:273:10:273:13 | call to find | map.cpp:261:46:261:51 | call to source |
| map.cpp:275:10:275:13 | call to find | map.cpp:257:39:257:44 | call to source |
| map.cpp:276:10:276:13 | call to find | map.cpp:258:32:258:37 | call to source |
| map.cpp:277:10:277:13 | call to find | map.cpp:259:62:259:67 | call to source |
| map.cpp:278:10:278:13 | call to find | map.cpp:260:34:260:39 | call to source |
| map.cpp:279:10:279:13 | call to find | map.cpp:261:46:261:51 | call to source |
@ -141,46 +113,27 @@
| map.cpp:290:10:290:13 | call to find | map.cpp:257:39:257:44 | call to source |
| map.cpp:291:10:291:13 | call to find | 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:321:10:321:10 | call to operator[] | map.cpp:317:20:317:25 | call to source |
| map.cpp:323:10:323:10 | call to operator[] | 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:346:7:346:9 | call to unordered_map | map.cpp:337:39:337:44 | call to source |
| map.cpp:346:7:346:9 | call to unordered_map | map.cpp:337:49:337:54 | call to source |
| map.cpp:347:7:347:9 | call to unordered_map | map.cpp:338:39:338:44 | call to source |
| map.cpp:347:7:347:9 | call to unordered_map | map.cpp:338:49:338: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:372:11:372:15 | call to erase | map.cpp:369:39:369:44 | call to source |
| map.cpp:372:11:372:15 | call to erase | map.cpp:369:49:369:54 | call to source |
| map.cpp:372:11:372:15 | call to erase | map.cpp:370:39:370:44 | call to source |
| map.cpp:372:11:372:15 | call to erase | 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 |

Просмотреть файл

@ -17,7 +17,6 @@
| copyableclass.cpp:67:11:67:21 | copyableclass.cpp:67:13:67:18 | IR only |
| copyableclass_declonly.cpp:42:8:42:9 | copyableclass_declonly.cpp:34:30:34:35 | AST only |
| copyableclass_declonly.cpp:67:11:67:11 | copyableclass_declonly.cpp:67:13:67:18 | AST only |
| map.cpp:42:9:42:14 | map.cpp:40:30:40:35 | IR only |
| map.cpp:46:9:46:13 | map.cpp:45:37:45:42 | IR only |
| map.cpp:51:9:51:13 | map.cpp:45:37:45:42 | IR only |
| map.cpp:57:9:57:13 | map.cpp:45:37:45:42 | IR only |
@ -27,20 +26,11 @@
| map.cpp:73:9:73:13 | map.cpp:63:37:63:42 | IR only |
| map.cpp:76:9:76:13 | map.cpp:63:37:63:42 | IR only |
| map.cpp:77:9:77:14 | map.cpp:63:37:63:42 | IR only |
| map.cpp:84:34:84:38 | map.cpp:84:17:84:22 | IR only |
| map.cpp:85:34:85:39 | map.cpp:85:17:85:22 | IR only |
| map.cpp:87:34:87:38 | map.cpp:87:24:87:29 | IR only |
| map.cpp:88:34:88:39 | map.cpp:88:24:88:29 | IR only |
| map.cpp:92:7:92:7 | map.cpp:91:33:91:38 | AST only |
| map.cpp:93:9:93:13 | map.cpp:91:33:91:38 | IR only |
| 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:108:7:108:48 | map.cpp:108:34:108:39 | 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:114:7:114:8 | map.cpp:108:34:108:39 | AST only |
| map.cpp:115:7:115:8 | map.cpp:109:46:109:51 | AST only |
@ -59,43 +49,25 @@
| map.cpp:159:12:159:17 | map.cpp:105:39:105:44 | IR only |
| map.cpp:169:10:169:10 | map.cpp:165:20:165:25 | AST only |
| map.cpp:171:10:171:10 | map.cpp:167:23:167:28 | 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:197:7:197:9 | map.cpp:188:39:188:44 | AST only |
| map.cpp:197:7:197:9 | map.cpp:188:49:188:54 | AST only |
| map.cpp:198:7:198:9 | map.cpp:189:39:189:44 | AST only |
| map.cpp:198:7:198:9 | map.cpp:189:49:189: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:260:7:260:48 | map.cpp:260:34:260:39 | 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:266:7:266:8 | map.cpp:260:34:260:39 | AST only |
| map.cpp:267:7:267:8 | map.cpp:261:46:261:51 | AST only |
@ -114,37 +86,21 @@
| map.cpp:311:12:311:17 | map.cpp:257:39:257:44 | IR only |
| map.cpp:321:10:321:10 | map.cpp:317:20:317:25 | AST only |
| map.cpp:323:10:323:10 | map.cpp:319:23:319:28 | 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:346:7:346:9 | map.cpp:337:39:337:44 | AST only |
| map.cpp:346:7:346:9 | map.cpp:337:49:337:54 | AST only |
| map.cpp:347:7:347:9 | map.cpp:338:39:338:44 | AST only |
| map.cpp:347:7:347:9 | map.cpp:338:49:338: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 |

Просмотреть файл

@ -45,8 +45,6 @@
| map.cpp:26:9:26:13 | first | map.cpp:25:12:25:17 | call to source |
| map.cpp:32:9:32:14 | second | map.cpp:30:13:30:18 | call to source |
| map.cpp:41:9:41:13 | first | map.cpp:40:30:40:35 | call to source |
| map.cpp:42:9:42:14 | second | map.cpp:40:30:40:35 | call to source |
| map.cpp:43:7:43:7 | e | map.cpp:40:30:40:35 | call to source |
| map.cpp:46:9:46:13 | first | map.cpp:45:37:45:42 | call to source |
| map.cpp:47:9:47:14 | second | map.cpp:45:37:45:42 | call to source |
| map.cpp:48:7:48:7 | f | map.cpp:45:37:45:42 | call to source |
@ -68,63 +66,44 @@
| map.cpp:76:9:76:13 | first | map.cpp:63:37:63:42 | call to source |
| map.cpp:77:9:77:14 | second | map.cpp:63:37:63:42 | call to source |
| map.cpp:78:7:78:7 | l | map.cpp:63:37:63:42 | call to source |
| map.cpp:83:7:83:32 | call to pair | map.cpp:83:17:83:22 | call to source |
| map.cpp:84:34:84:38 | first | map.cpp:84:17:84:22 | call to source |
| map.cpp:85:34:85:39 | second | map.cpp:85:17:85:22 | call to source |
| map.cpp:86:7:86:32 | call to pair | map.cpp:86:24:86:29 | call to source |
| map.cpp:87:34:87:38 | first | map.cpp:87:24:87:29 | call to source |
| map.cpp:88:34:88:39 | second | map.cpp:88:24:88:29 | call to source |
| map.cpp:93:9:93:13 | first | map.cpp:91:33:91:38 | call to source |
| 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:108:7:108:48 | call to iterator | map.cpp:108:34:108:39 | call to source |
| map.cpp:109:10:109:25 | call to insert_or_assign | map.cpp:109:46:109:51 | call to source |
| map.cpp:117:10:117:13 | call to find | map.cpp:105:39:105:44 | call to source |
| map.cpp:118:10:118:13 | call to find | map.cpp:106:32:106:37 | call to source |
| map.cpp:119:10:119:13 | call to find | map.cpp:107:62:107:67 | call to source |
| map.cpp:123:10:123:13 | call to find | map.cpp:105:39:105:44 | call to source |
| map.cpp:124:10:124:13 | call to find | map.cpp:106:32:106:37 | call to source |
| map.cpp:125:10:125:13 | call to find | map.cpp:107:62:107:67 | call to source |
| map.cpp:139:10:139:13 | call to find | 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: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:223:11:223:15 | call to erase | map.cpp:220:39:220:44 | call to source |
| map.cpp:223:11:223:15 | call to erase | map.cpp:220:49:220:54 | call to source |
| map.cpp:223:11:223:15 | call to erase | map.cpp:221:39:221:44 | call to source |
| map.cpp:223:11:223:15 | call to erase | map.cpp:221:49:221:54 | 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:260:7:260:48 | call to iterator | map.cpp:260:34:260:39 | call to source |
| map.cpp:261:10:261:25 | call to insert_or_assign | map.cpp:261:46:261:51 | call to source |
| map.cpp:269:10:269:13 | call to find | map.cpp:257:39:257:44 | call to source |
| map.cpp:270:10:270:13 | call to find | map.cpp:258:32:258:37 | call to source |
| map.cpp:271:10:271:13 | call to find | map.cpp:259:62:259:67 | call to source |
| map.cpp:275:10:275:13 | call to find | map.cpp:257:39:257:44 | call to source |
| map.cpp:276:10:276:13 | call to find | map.cpp:258:32:258:37 | call to source |
| map.cpp:277:10:277:13 | call to find | map.cpp:259:62:259:67 | call to source |
| map.cpp:291:10:291:13 | call to find | 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: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 |
| map.cpp:372:11:372:15 | call to erase | map.cpp:369:39:369:44 | call to source |
| map.cpp:372:11:372:15 | call to erase | map.cpp:369:49:369:54 | call to source |
| map.cpp:372:11:372:15 | call to erase | map.cpp:370:39:370:44 | call to source |
| map.cpp:372:11:372:15 | call to erase | 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 |