C++: Model map::emplace, emplace_hint and map::try_emplace.

This commit is contained in:
Geoffrey White
2020-10-07 11:48:16 +01:00
parent 6394b1b478
commit b7ab89c892
6 changed files with 245 additions and 24 deletions

View File

@@ -1099,16 +1099,30 @@
| map.cpp:232:32:232:34 | call to map | map.cpp:239:24:239:26 | m25 | |
| map.cpp:232:32:232:34 | call to map | map.cpp:240:7:240:9 | m25 | |
| map.cpp:232:32:232:34 | call to map | map.cpp:252:1:252:1 | m25 | |
| map.cpp:233:7:233:9 | m24 | map.cpp:233:7:233:9 | ref arg m24 | TAINT |
| map.cpp:233:7:233:9 | m24 | map.cpp:233:11:233:17 | call to emplace | TAINT |
| map.cpp:233:7:233:9 | ref arg m24 | map.cpp:234:7:234:9 | m24 | |
| map.cpp:233:7:233:9 | ref arg m24 | map.cpp:235:7:235:9 | m24 | |
| map.cpp:233:7:233:9 | ref arg m24 | map.cpp:236:7:236:9 | m24 | |
| map.cpp:233:7:233:9 | ref arg m24 | map.cpp:252:1:252:1 | m24 | |
| map.cpp:233:19:233:23 | abc | map.cpp:233:7:233:9 | ref arg m24 | TAINT |
| map.cpp:233:19:233:23 | abc | map.cpp:233:11:233:17 | call to emplace | TAINT |
| map.cpp:233:26:233:30 | def | map.cpp:233:7:233:9 | ref arg m24 | TAINT |
| map.cpp:233:26:233:30 | def | map.cpp:233:11:233:17 | call to emplace | TAINT |
| map.cpp:233:33:233:37 | first | map.cpp:233:7:233:37 | call to iterator | |
| map.cpp:234:7:234:9 | m24 | map.cpp:234:7:234:9 | call to map | |
| map.cpp:235:7:235:9 | m24 | map.cpp:235:7:235:9 | ref arg m24 | TAINT |
| map.cpp:235:7:235:9 | m24 | map.cpp:235:11:235:17 | call to emplace | TAINT |
| map.cpp:235:7:235:9 | ref arg m24 | map.cpp:236:7:236:9 | m24 | |
| map.cpp:235:7:235:9 | ref arg m24 | map.cpp:252:1:252:1 | m24 | |
| map.cpp:235:19:235:23 | abc | map.cpp:235:7:235:9 | ref arg m24 | TAINT |
| map.cpp:235:19:235:23 | abc | map.cpp:235:11:235:17 | call to emplace | TAINT |
| map.cpp:235:26:235:31 | call to source | map.cpp:235:7:235:9 | ref arg m24 | TAINT |
| map.cpp:235:26:235:31 | call to source | map.cpp:235:11:235:17 | call to emplace | TAINT |
| map.cpp:235:36:235:40 | first | map.cpp:235:7:235:40 | call to iterator | |
| map.cpp:236:7:236:9 | m24 | map.cpp:236:7:236:9 | call to map | |
| map.cpp:237:7:237:9 | m25 | map.cpp:237:7:237:9 | ref arg m25 | TAINT |
| map.cpp:237:7:237:9 | m25 | map.cpp:237:11:237:22 | call to emplace_hint | TAINT |
| map.cpp:237:7:237:9 | ref arg m25 | map.cpp:238:7:238:9 | m25 | |
| map.cpp:237:7:237:9 | ref arg m25 | map.cpp:239:7:239:9 | m25 | |
| map.cpp:237:7:237:9 | ref arg m25 | map.cpp:239:24:239:26 | m25 | |
@@ -1121,15 +1135,29 @@
| map.cpp:237:24:237:26 | ref arg m25 | map.cpp:239:24:239:26 | m25 | |
| map.cpp:237:24:237:26 | ref arg m25 | map.cpp:240:7:240:9 | m25 | |
| map.cpp:237:24:237:26 | ref arg m25 | map.cpp:252:1:252:1 | m25 | |
| map.cpp:237:24:237:34 | call to iterator | map.cpp:237:7:237:9 | ref arg m25 | TAINT |
| map.cpp:237:24:237:34 | call to iterator | map.cpp:237:11:237:22 | call to emplace_hint | TAINT |
| map.cpp:237:28:237:32 | call to begin | map.cpp:237:24:237:34 | call to iterator | TAINT |
| map.cpp:237:37:237:41 | abc | map.cpp:237:7:237:9 | ref arg m25 | TAINT |
| map.cpp:237:37:237:41 | abc | map.cpp:237:11:237:22 | call to emplace_hint | TAINT |
| map.cpp:237:44:237:48 | def | map.cpp:237:7:237:9 | ref arg m25 | TAINT |
| map.cpp:237:44:237:48 | def | map.cpp:237:11:237:22 | call to emplace_hint | TAINT |
| map.cpp:238:7:238:9 | m25 | map.cpp:238:7:238:9 | call to map | |
| map.cpp:239:7:239:9 | m25 | map.cpp:239:7:239:9 | ref arg m25 | TAINT |
| map.cpp:239:7:239:9 | m25 | map.cpp:239:11:239:22 | call to emplace_hint | TAINT |
| map.cpp:239:7:239:9 | ref arg m25 | map.cpp:240:7:240:9 | m25 | |
| map.cpp:239:7:239:9 | ref arg m25 | map.cpp:252:1:252:1 | m25 | |
| map.cpp:239:24:239:26 | m25 | map.cpp:239:28:239:32 | call to begin | TAINT |
| map.cpp:239:24:239:26 | ref arg m25 | map.cpp:239:7:239:9 | m25 | |
| map.cpp:239:24:239:26 | ref arg m25 | map.cpp:240:7:240:9 | m25 | |
| map.cpp:239:24:239:26 | ref arg m25 | map.cpp:252:1:252:1 | m25 | |
| map.cpp:239:24:239:34 | call to iterator | map.cpp:239:7:239:9 | ref arg m25 | TAINT |
| map.cpp:239:24:239:34 | call to iterator | map.cpp:239:11:239:22 | call to emplace_hint | TAINT |
| map.cpp:239:28:239:32 | call to begin | map.cpp:239:24:239:34 | call to iterator | TAINT |
| map.cpp:239:37:239:41 | abc | map.cpp:239:7:239:9 | ref arg m25 | TAINT |
| map.cpp:239:37:239:41 | abc | map.cpp:239:11:239:22 | call to emplace_hint | TAINT |
| map.cpp:239:44:239:49 | call to source | map.cpp:239:7:239:9 | ref arg m25 | TAINT |
| map.cpp:239:44:239:49 | call to source | map.cpp:239:11:239:22 | call to emplace_hint | TAINT |
| map.cpp:240:7:240:9 | m25 | map.cpp:240:7:240:9 | call to map | |
| map.cpp:243:27:243:29 | call to map | map.cpp:244:7:244:9 | m26 | |
| map.cpp:243:27:243:29 | call to map | map.cpp:245:7:245:9 | m26 | |
@@ -1143,16 +1171,26 @@
| map.cpp:243:32:243:34 | call to map | map.cpp:250:23:250:25 | m27 | |
| map.cpp:243:32:243:34 | call to map | map.cpp:251:7:251:9 | m27 | |
| map.cpp:243:32:243:34 | call to map | map.cpp:252:1:252:1 | m27 | |
| map.cpp:244:7:244:9 | m26 | map.cpp:244:7:244:9 | ref arg m26 | TAINT |
| map.cpp:244:7:244:9 | m26 | map.cpp:244:11:244:21 | call to try_emplace | TAINT |
| map.cpp:244:7:244:9 | ref arg m26 | map.cpp:245:7:245:9 | m26 | |
| map.cpp:244:7:244:9 | ref arg m26 | map.cpp:246:7:246:9 | m26 | |
| map.cpp:244:7:244:9 | ref arg m26 | map.cpp:247:7:247:9 | m26 | |
| map.cpp:244:7:244:9 | ref arg m26 | map.cpp:252:1:252:1 | m26 | |
| map.cpp:244:30:244:34 | def | map.cpp:244:7:244:9 | ref arg m26 | TAINT |
| map.cpp:244:30:244:34 | def | map.cpp:244:11:244:21 | call to try_emplace | TAINT |
| map.cpp:244:37:244:41 | first | map.cpp:244:7:244:41 | call to iterator | |
| map.cpp:245:7:245:9 | m26 | map.cpp:245:7:245:9 | call to map | |
| map.cpp:246:7:246:9 | m26 | map.cpp:246:7:246:9 | ref arg m26 | TAINT |
| map.cpp:246:7:246:9 | m26 | map.cpp:246:11:246:21 | call to try_emplace | TAINT |
| map.cpp:246:7:246:9 | ref arg m26 | map.cpp:247:7:247:9 | m26 | |
| map.cpp:246:7:246:9 | ref arg m26 | map.cpp:252:1:252:1 | m26 | |
| map.cpp:246:30:246:35 | call to source | map.cpp:246:7:246:9 | ref arg m26 | TAINT |
| map.cpp:246:30:246:35 | call to source | map.cpp:246:11:246:21 | call to try_emplace | TAINT |
| map.cpp:246:40:246:44 | first | map.cpp:246:7:246:44 | call to iterator | |
| map.cpp:247:7:247:9 | m26 | map.cpp:247:7:247:9 | call to map | |
| map.cpp:248:7:248:9 | m27 | map.cpp:248:7:248:9 | ref arg m27 | TAINT |
| map.cpp:248:7:248:9 | m27 | map.cpp:248:11:248:21 | call to try_emplace | TAINT |
| map.cpp:248:7:248:9 | ref arg m27 | map.cpp:249:7:249:9 | m27 | |
| map.cpp:248:7:248:9 | ref arg m27 | map.cpp:250:7:250:9 | m27 | |
| map.cpp:248:7:248:9 | ref arg m27 | map.cpp:250:23:250:25 | m27 | |
@@ -1165,15 +1203,25 @@
| map.cpp:248:23:248:25 | ref arg m27 | map.cpp:250:23:250:25 | m27 | |
| map.cpp:248:23:248:25 | ref arg m27 | map.cpp:251:7:251:9 | m27 | |
| map.cpp:248:23:248:25 | ref arg m27 | map.cpp:252:1:252:1 | m27 | |
| map.cpp:248:23:248:33 | call to iterator | map.cpp:248:7:248:9 | ref arg m27 | TAINT |
| map.cpp:248:23:248:33 | call to iterator | map.cpp:248:11:248:21 | call to try_emplace | TAINT |
| map.cpp:248:27:248:31 | call to begin | map.cpp:248:23:248:33 | call to iterator | TAINT |
| map.cpp:248:43:248:47 | def | map.cpp:248:7:248:9 | ref arg m27 | TAINT |
| map.cpp:248:43:248:47 | def | map.cpp:248:11:248:21 | call to try_emplace | TAINT |
| map.cpp:249:7:249:9 | m27 | map.cpp:249:7:249:9 | call to map | |
| map.cpp:250:7:250:9 | m27 | map.cpp:250:7:250:9 | ref arg m27 | TAINT |
| map.cpp:250:7:250:9 | m27 | map.cpp:250:11:250:21 | call to try_emplace | TAINT |
| map.cpp:250:7:250:9 | ref arg m27 | map.cpp:251:7:251:9 | m27 | |
| map.cpp:250:7:250:9 | ref arg m27 | map.cpp:252:1:252:1 | m27 | |
| map.cpp:250:23:250:25 | m27 | map.cpp:250:27:250:31 | call to begin | TAINT |
| map.cpp:250:23:250:25 | ref arg m27 | map.cpp:250:7:250:9 | m27 | |
| map.cpp:250:23:250:25 | ref arg m27 | map.cpp:251:7:251:9 | m27 | |
| map.cpp:250:23:250:25 | ref arg m27 | map.cpp:252:1:252:1 | m27 | |
| map.cpp:250:23:250:33 | call to iterator | map.cpp:250:7:250:9 | ref arg m27 | TAINT |
| map.cpp:250:23:250:33 | call to iterator | map.cpp:250:11:250:21 | call to try_emplace | TAINT |
| map.cpp:250:27:250:31 | call to begin | map.cpp:250:23:250:33 | call to iterator | TAINT |
| map.cpp:250:43:250:48 | call to source | map.cpp:250:7:250:9 | ref arg m27 | TAINT |
| map.cpp:250:43:250:48 | call to source | map.cpp:250:11:250:21 | call to try_emplace | TAINT |
| map.cpp:251:7:251:9 | m27 | map.cpp:251:7:251:9 | call to map | |
| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:259:7:259:8 | m1 | |
| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:265:7:265:8 | m1 | |
@@ -1710,16 +1758,30 @@
| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:388:24:388:26 | m25 | |
| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:389:7:389:9 | m25 | |
| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:418:1:418:1 | m25 | |
| map.cpp:382:7:382:9 | m24 | map.cpp:382:7:382:9 | ref arg m24 | TAINT |
| map.cpp:382:7:382:9 | m24 | map.cpp:382:11:382:17 | call to emplace | TAINT |
| map.cpp:382:7:382:9 | ref arg m24 | map.cpp:383:7:383:9 | m24 | |
| map.cpp:382:7:382:9 | ref arg m24 | map.cpp:384:7:384:9 | m24 | |
| map.cpp:382:7:382:9 | ref arg m24 | map.cpp:385:7:385:9 | m24 | |
| map.cpp:382:7:382:9 | ref arg m24 | map.cpp:418:1:418:1 | m24 | |
| map.cpp:382:19:382:23 | abc | map.cpp:382:7:382:9 | ref arg m24 | TAINT |
| map.cpp:382:19:382:23 | abc | map.cpp:382:11:382:17 | call to emplace | TAINT |
| map.cpp:382:26:382:30 | def | map.cpp:382:7:382:9 | ref arg m24 | TAINT |
| map.cpp:382:26:382:30 | def | map.cpp:382:11:382:17 | call to emplace | TAINT |
| map.cpp:382:33:382:37 | first | map.cpp:382:7:382:37 | call to iterator | |
| map.cpp:383:7:383:9 | m24 | map.cpp:383:7:383:9 | call to unordered_map | |
| map.cpp:384:7:384:9 | m24 | map.cpp:384:7:384:9 | ref arg m24 | TAINT |
| map.cpp:384:7:384:9 | m24 | map.cpp:384:11:384:17 | call to emplace | TAINT |
| map.cpp:384:7:384:9 | ref arg m24 | map.cpp:385:7:385:9 | m24 | |
| map.cpp:384:7:384:9 | ref arg m24 | map.cpp:418:1:418:1 | m24 | |
| map.cpp:384:19:384:23 | abc | map.cpp:384:7:384:9 | ref arg m24 | TAINT |
| map.cpp:384:19:384:23 | abc | map.cpp:384:11:384:17 | call to emplace | TAINT |
| map.cpp:384:26:384:31 | call to source | map.cpp:384:7:384:9 | ref arg m24 | TAINT |
| map.cpp:384:26:384:31 | call to source | map.cpp:384:11:384:17 | call to emplace | TAINT |
| map.cpp:384:36:384:40 | first | map.cpp:384:7:384:40 | call to iterator | |
| map.cpp:385:7:385:9 | m24 | map.cpp:385:7:385:9 | call to unordered_map | |
| map.cpp:386:7:386:9 | m25 | map.cpp:386:7:386:9 | ref arg m25 | TAINT |
| map.cpp:386:7:386:9 | m25 | map.cpp:386:11:386:22 | call to emplace_hint | TAINT |
| map.cpp:386:7:386:9 | ref arg m25 | map.cpp:387:7:387:9 | m25 | |
| map.cpp:386:7:386:9 | ref arg m25 | map.cpp:388:7:388:9 | m25 | |
| map.cpp:386:7:386:9 | ref arg m25 | map.cpp:388:24:388:26 | m25 | |
@@ -1732,15 +1794,29 @@
| map.cpp:386:24:386:26 | ref arg m25 | map.cpp:388:24:388:26 | m25 | |
| map.cpp:386:24:386:26 | ref arg m25 | map.cpp:389:7:389:9 | m25 | |
| map.cpp:386:24:386:26 | ref arg m25 | map.cpp:418:1:418:1 | m25 | |
| map.cpp:386:24:386:34 | call to iterator | map.cpp:386:7:386:9 | ref arg m25 | TAINT |
| map.cpp:386:24:386:34 | call to iterator | map.cpp:386:11:386:22 | call to emplace_hint | TAINT |
| map.cpp:386:28:386:32 | call to begin | map.cpp:386:24:386:34 | call to iterator | TAINT |
| map.cpp:386:37:386:41 | abc | map.cpp:386:7:386:9 | ref arg m25 | TAINT |
| map.cpp:386:37:386:41 | abc | map.cpp:386:11:386:22 | call to emplace_hint | TAINT |
| map.cpp:386:44:386:48 | def | map.cpp:386:7:386:9 | ref arg m25 | TAINT |
| map.cpp:386:44:386:48 | def | map.cpp:386:11:386:22 | call to emplace_hint | TAINT |
| map.cpp:387:7:387:9 | m25 | map.cpp:387:7:387:9 | call to unordered_map | |
| map.cpp:388:7:388:9 | m25 | map.cpp:388:7:388:9 | ref arg m25 | TAINT |
| map.cpp:388:7:388:9 | m25 | map.cpp:388:11:388:22 | call to emplace_hint | TAINT |
| map.cpp:388:7:388:9 | ref arg m25 | map.cpp:389:7:389:9 | m25 | |
| map.cpp:388:7:388:9 | ref arg m25 | map.cpp:418:1:418:1 | m25 | |
| map.cpp:388:24:388:26 | m25 | map.cpp:388:28:388:32 | call to begin | TAINT |
| map.cpp:388:24:388:26 | ref arg m25 | map.cpp:388:7:388:9 | m25 | |
| map.cpp:388:24:388:26 | ref arg m25 | map.cpp:389:7:389:9 | m25 | |
| map.cpp:388:24:388:26 | ref arg m25 | map.cpp:418:1:418:1 | m25 | |
| map.cpp:388:24:388:34 | call to iterator | map.cpp:388:7:388:9 | ref arg m25 | TAINT |
| map.cpp:388:24:388:34 | call to iterator | map.cpp:388:11:388:22 | call to emplace_hint | TAINT |
| map.cpp:388:28:388:32 | call to begin | map.cpp:388:24:388:34 | call to iterator | TAINT |
| map.cpp:388:37:388:41 | abc | map.cpp:388:7:388:9 | ref arg m25 | TAINT |
| map.cpp:388:37:388:41 | abc | map.cpp:388:11:388:22 | call to emplace_hint | TAINT |
| map.cpp:388:44:388:49 | call to source | map.cpp:388:7:388:9 | ref arg m25 | TAINT |
| map.cpp:388:44:388:49 | call to source | map.cpp:388:11:388:22 | call to emplace_hint | TAINT |
| map.cpp:389:7:389:9 | m25 | map.cpp:389:7:389:9 | call to unordered_map | |
| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:393:7:393:9 | m26 | |
| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:394:7:394:9 | m26 | |
@@ -1756,26 +1832,44 @@
| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:401:23:401:25 | m27 | |
| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:402:7:402:9 | m27 | |
| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:418:1:418:1 | m27 | |
| map.cpp:393:7:393:9 | m26 | map.cpp:393:7:393:9 | ref arg m26 | TAINT |
| map.cpp:393:7:393:9 | m26 | map.cpp:393:11:393:21 | call to try_emplace | TAINT |
| map.cpp:393:7:393:9 | ref arg m26 | map.cpp:394:7:394:9 | m26 | |
| map.cpp:393:7:393:9 | ref arg m26 | map.cpp:395:7:395:9 | m26 | |
| map.cpp:393:7:393:9 | ref arg m26 | map.cpp:396:7:396:9 | m26 | |
| map.cpp:393:7:393:9 | ref arg m26 | map.cpp:397:7:397:9 | m26 | |
| map.cpp:393:7:393:9 | ref arg m26 | map.cpp:398:7:398:9 | m26 | |
| map.cpp:393:7:393:9 | ref arg m26 | map.cpp:418:1:418:1 | m26 | |
| map.cpp:393:30:393:34 | def | map.cpp:393:7:393:9 | ref arg m26 | TAINT |
| map.cpp:393:30:393:34 | def | map.cpp:393:11:393:21 | call to try_emplace | TAINT |
| map.cpp:393:37:393:41 | first | map.cpp:393:7:393:41 | call to iterator | |
| map.cpp:394:7:394:9 | m26 | map.cpp:394:7:394:9 | ref arg m26 | TAINT |
| map.cpp:394:7:394:9 | m26 | map.cpp:394:11:394:21 | call to try_emplace | TAINT |
| map.cpp:394:7:394:9 | ref arg m26 | map.cpp:395:7:395:9 | m26 | |
| map.cpp:394:7:394:9 | ref arg m26 | map.cpp:396:7:396:9 | m26 | |
| map.cpp:394:7:394:9 | ref arg m26 | map.cpp:397:7:397:9 | m26 | |
| map.cpp:394:7:394:9 | ref arg m26 | map.cpp:398:7:398:9 | m26 | |
| map.cpp:394:7:394:9 | ref arg m26 | map.cpp:418:1:418:1 | m26 | |
| map.cpp:394:30:394:34 | def | map.cpp:394:7:394:9 | ref arg m26 | TAINT |
| map.cpp:394:30:394:34 | def | map.cpp:394:11:394:21 | call to try_emplace | TAINT |
| map.cpp:395:7:395:9 | m26 | map.cpp:395:7:395:9 | call to unordered_map | |
| map.cpp:396:7:396:9 | m26 | map.cpp:396:7:396:9 | ref arg m26 | TAINT |
| map.cpp:396:7:396:9 | m26 | map.cpp:396:11:396:21 | call to try_emplace | TAINT |
| map.cpp:396:7:396:9 | ref arg m26 | map.cpp:397:7:397:9 | m26 | |
| map.cpp:396:7:396:9 | ref arg m26 | map.cpp:398:7:398:9 | m26 | |
| map.cpp:396:7:396:9 | ref arg m26 | map.cpp:418:1:418:1 | m26 | |
| map.cpp:396:30:396:35 | call to source | map.cpp:396:7:396:9 | ref arg m26 | TAINT |
| map.cpp:396:30:396:35 | call to source | map.cpp:396:11:396:21 | call to try_emplace | TAINT |
| map.cpp:396:40:396:44 | first | map.cpp:396:7:396:44 | call to iterator | |
| map.cpp:397:7:397:9 | m26 | map.cpp:397:7:397:9 | ref arg m26 | TAINT |
| map.cpp:397:7:397:9 | m26 | map.cpp:397:11:397:21 | call to try_emplace | TAINT |
| map.cpp:397:7:397:9 | ref arg m26 | map.cpp:398:7:398:9 | m26 | |
| map.cpp:397:7:397:9 | ref arg m26 | map.cpp:418:1:418:1 | m26 | |
| map.cpp:397:30:397:35 | call to source | map.cpp:397:7:397:9 | ref arg m26 | TAINT |
| map.cpp:397:30:397:35 | call to source | map.cpp:397:11:397:21 | call to try_emplace | TAINT |
| map.cpp:398:7:398:9 | m26 | map.cpp:398:7:398:9 | call to unordered_map | |
| map.cpp:399:7:399:9 | m27 | map.cpp:399:7:399:9 | ref arg m27 | TAINT |
| map.cpp:399:7:399:9 | m27 | map.cpp:399:11:399:21 | call to try_emplace | TAINT |
| map.cpp:399:7:399:9 | ref arg m27 | map.cpp:400:7:400:9 | m27 | |
| map.cpp:399:7:399:9 | ref arg m27 | map.cpp:401:7:401:9 | m27 | |
| map.cpp:399:7:399:9 | ref arg m27 | map.cpp:401:23:401:25 | m27 | |
@@ -1788,15 +1882,25 @@
| map.cpp:399:23:399:25 | ref arg m27 | map.cpp:401:23:401:25 | m27 | |
| map.cpp:399:23:399:25 | ref arg m27 | map.cpp:402:7:402:9 | m27 | |
| map.cpp:399:23:399:25 | ref arg m27 | map.cpp:418:1:418:1 | m27 | |
| map.cpp:399:23:399:33 | call to iterator | map.cpp:399:7:399:9 | ref arg m27 | TAINT |
| map.cpp:399:23:399:33 | call to iterator | map.cpp:399:11:399:21 | call to try_emplace | TAINT |
| map.cpp:399:27:399:31 | call to begin | map.cpp:399:23:399:33 | call to iterator | TAINT |
| map.cpp:399:43:399:47 | def | map.cpp:399:7:399:9 | ref arg m27 | TAINT |
| map.cpp:399:43:399:47 | def | map.cpp:399:11:399:21 | call to try_emplace | TAINT |
| map.cpp:400:7:400:9 | m27 | map.cpp:400:7:400:9 | call to unordered_map | |
| map.cpp:401:7:401:9 | m27 | map.cpp:401:7:401:9 | ref arg m27 | TAINT |
| map.cpp:401:7:401:9 | m27 | map.cpp:401:11:401:21 | call to try_emplace | TAINT |
| map.cpp:401:7:401:9 | ref arg m27 | map.cpp:402:7:402:9 | m27 | |
| map.cpp:401:7:401:9 | ref arg m27 | map.cpp:418:1:418:1 | m27 | |
| map.cpp:401:23:401:25 | m27 | map.cpp:401:27:401:31 | call to begin | TAINT |
| map.cpp:401:23:401:25 | ref arg m27 | map.cpp:401:7:401:9 | m27 | |
| map.cpp:401:23:401:25 | ref arg m27 | map.cpp:402:7:402:9 | m27 | |
| map.cpp:401:23:401:25 | ref arg m27 | map.cpp:418:1:418:1 | m27 | |
| map.cpp:401:23:401:33 | call to iterator | map.cpp:401:7:401:9 | ref arg m27 | TAINT |
| map.cpp:401:23:401:33 | call to iterator | map.cpp:401:11:401:21 | call to try_emplace | TAINT |
| map.cpp:401:27:401:31 | call to begin | map.cpp:401:23:401:33 | call to iterator | TAINT |
| map.cpp:401:43:401:48 | call to source | map.cpp:401:7:401:9 | ref arg m27 | TAINT |
| map.cpp:401:43:401:48 | call to source | map.cpp:401:11:401:21 | call to try_emplace | TAINT |
| map.cpp:402:7:402:9 | m27 | map.cpp:402:7:402:9 | call to unordered_map | |
| map.cpp:405:50:405:52 | call to unordered_map | map.cpp:406:7:406:9 | m28 | |
| map.cpp:405:50:405:52 | call to unordered_map | map.cpp:407:7:407:9 | m28 | |
@@ -1814,34 +1918,58 @@
| map.cpp:405:65:405:67 | call to unordered_map | map.cpp:416:7:416:9 | m31 | |
| map.cpp:405:65:405:67 | call to unordered_map | map.cpp:417:7:417:9 | m31 | |
| map.cpp:405:65:405:67 | call to unordered_map | map.cpp:418:1:418:1 | m31 | |
| map.cpp:406:7:406:9 | m28 | map.cpp:406:7:406:9 | ref arg m28 | TAINT |
| map.cpp:406:7:406:9 | m28 | map.cpp:406:11:406:21 | call to try_emplace | TAINT |
| map.cpp:406:7:406:9 | ref arg m28 | map.cpp:407:7:407:9 | m28 | |
| map.cpp:406:7:406:9 | ref arg m28 | map.cpp:408:7:408:9 | m28 | |
| map.cpp:406:7:406:9 | ref arg m28 | map.cpp:418:1:418:1 | m28 | |
| map.cpp:406:11:406:21 | call to try_emplace | map.cpp:406:7:406:34 | call to pair | TAINT |
| map.cpp:406:30:406:30 | 1 | map.cpp:406:7:406:9 | ref arg m28 | TAINT |
| map.cpp:406:30:406:30 | 1 | map.cpp:406:11:406:21 | call to try_emplace | TAINT |
| map.cpp:406:33:406:33 | 2 | map.cpp:406:7:406:9 | ref arg m28 | TAINT |
| map.cpp:406:33:406:33 | 2 | map.cpp:406:11:406:21 | call to try_emplace | TAINT |
| map.cpp:407:7:407:9 | m28 | map.cpp:407:7:407:9 | call to unordered_map | |
| map.cpp:408:7:408:9 | m28 | map.cpp:408:10:408:10 | call to operator[] | TAINT |
| map.cpp:408:7:408:9 | ref arg m28 | map.cpp:418:1:418:1 | m28 | |
| map.cpp:408:10:408:10 | call to operator[] | map.cpp:408:7:408:16 | call to pair | TAINT |
| map.cpp:409:7:409:9 | m29 | map.cpp:409:7:409:9 | ref arg m29 | TAINT |
| map.cpp:409:7:409:9 | m29 | map.cpp:409:11:409:21 | call to try_emplace | TAINT |
| map.cpp:409:7:409:9 | ref arg m29 | map.cpp:410:7:410:9 | m29 | |
| map.cpp:409:7:409:9 | ref arg m29 | map.cpp:411:7:411:9 | m29 | |
| map.cpp:409:7:409:9 | ref arg m29 | map.cpp:418:1:418:1 | m29 | |
| map.cpp:409:11:409:21 | call to try_emplace | map.cpp:409:7:409:37 | call to pair | TAINT |
| map.cpp:409:33:409:33 | 1 | map.cpp:409:7:409:9 | ref arg m29 | TAINT |
| map.cpp:409:33:409:33 | 1 | map.cpp:409:11:409:21 | call to try_emplace | TAINT |
| map.cpp:409:36:409:36 | 2 | map.cpp:409:7:409:9 | ref arg m29 | TAINT |
| map.cpp:409:36:409:36 | 2 | map.cpp:409:11:409:21 | call to try_emplace | TAINT |
| map.cpp:410:7:410:9 | m29 | map.cpp:410:7:410:9 | call to unordered_map | |
| map.cpp:411:7:411:9 | m29 | map.cpp:411:10:411:10 | call to operator[] | TAINT |
| map.cpp:411:7:411:9 | ref arg m29 | map.cpp:418:1:418:1 | m29 | |
| map.cpp:411:10:411:10 | call to operator[] | map.cpp:411:7:411:16 | call to pair | TAINT |
| map.cpp:412:7:412:9 | m30 | map.cpp:412:7:412:9 | ref arg m30 | TAINT |
| map.cpp:412:7:412:9 | m30 | map.cpp:412:11:412:21 | call to try_emplace | TAINT |
| map.cpp:412:7:412:9 | ref arg m30 | map.cpp:413:7:413:9 | m30 | |
| map.cpp:412:7:412:9 | ref arg m30 | map.cpp:414:7:414:9 | m30 | |
| map.cpp:412:7:412:9 | ref arg m30 | map.cpp:418:1:418:1 | m30 | |
| map.cpp:412:11:412:21 | call to try_emplace | map.cpp:412:7:412:41 | call to pair | TAINT |
| map.cpp:412:30:412:35 | call to source | map.cpp:412:7:412:9 | ref arg m30 | TAINT |
| map.cpp:412:30:412:35 | call to source | map.cpp:412:11:412:21 | call to try_emplace | TAINT |
| map.cpp:412:40:412:40 | 2 | map.cpp:412:7:412:9 | ref arg m30 | TAINT |
| map.cpp:412:40:412:40 | 2 | map.cpp:412:11:412:21 | call to try_emplace | TAINT |
| map.cpp:413:7:413:9 | m30 | map.cpp:413:7:413:9 | call to unordered_map | |
| map.cpp:414:7:414:9 | m30 | map.cpp:414:10:414:10 | call to operator[] | TAINT |
| map.cpp:414:7:414:9 | ref arg m30 | map.cpp:418:1:418:1 | m30 | |
| map.cpp:414:10:414:10 | call to operator[] | map.cpp:414:7:414:16 | call to pair | TAINT |
| map.cpp:415:7:415:9 | m31 | map.cpp:415:7:415:9 | ref arg m31 | TAINT |
| map.cpp:415:7:415:9 | m31 | map.cpp:415:11:415:21 | call to try_emplace | TAINT |
| map.cpp:415:7:415:9 | ref arg m31 | map.cpp:416:7:416:9 | m31 | |
| map.cpp:415:7:415:9 | ref arg m31 | map.cpp:417:7:417:9 | m31 | |
| map.cpp:415:7:415:9 | ref arg m31 | map.cpp:418:1:418:1 | m31 | |
| map.cpp:415:11:415:21 | call to try_emplace | map.cpp:415:7:415:41 | call to pair | TAINT |
| map.cpp:415:30:415:30 | 1 | map.cpp:415:7:415:9 | ref arg m31 | TAINT |
| map.cpp:415:30:415:30 | 1 | map.cpp:415:11:415:21 | call to try_emplace | TAINT |
| map.cpp:415:33:415:38 | call to source | map.cpp:415:7:415:9 | ref arg m31 | TAINT |
| map.cpp:415:33:415:38 | call to source | map.cpp:415:11:415:21 | call to try_emplace | TAINT |
| map.cpp:416:7:416:9 | m31 | map.cpp:416:7:416:9 | call to unordered_map | |
| map.cpp:417:7:417:9 | m31 | map.cpp:417:10:417:10 | call to operator[] | TAINT |
| map.cpp:417:7:417:9 | ref arg m31 | map.cpp:418:1:418:1 | m31 | |

View File

@@ -232,23 +232,23 @@ void test_map()
std::map<char *, char *> m24, m25;
sink(m24.emplace("abc", "def").first);
sink(m24);
sink(m24.emplace("abc", source()).first); // tainted [NOT DETECTED]
sink(m24); // tainted [NOT DETECTED]
sink(m24.emplace("abc", source()).first); // tainted
sink(m24); // tainted
sink(m25.emplace_hint(m25.begin(), "abc", "def"));
sink(m25);
sink(m25.emplace_hint(m25.begin(), "abc", source())); // tainted [NOT DETECTED]
sink(m25); // tainted [NOT DETECTED]
sink(m25.emplace_hint(m25.begin(), "abc", source())); // tainted
sink(m25); // tainted
// try_emplace
std::map<char *, char *> m26, m27;
sink(m26.try_emplace("abc", "def").first);
sink(m26);
sink(m26.try_emplace("abc", source()).first); // tainted [NOT DETECTED]
sink(m26); // tainted [NOT DETECTED]
sink(m26.try_emplace("abc", source()).first); // tainted
sink(m26); // tainted
sink(m27.try_emplace(m27.begin(), "abc", "def"));
sink(m27);
sink(m27.try_emplace(m27.begin(), "abc", source())); // tainted [NOT DETECTED]
sink(m27); // tainted [NOT DETECTED]
sink(m27.try_emplace(m27.begin(), "abc", source())); // tainted
sink(m27); // tainted
}
void test_unordered_map()
@@ -381,25 +381,25 @@ void test_unordered_map()
std::unordered_map<char *, char *> m24, m25;
sink(m24.emplace("abc", "def").first);
sink(m24);
sink(m24.emplace("abc", source()).first); // tainted [NOT DETECTED]
sink(m24); // tainted [NOT DETECTED]
sink(m24.emplace("abc", source()).first); // tainted
sink(m24); // tainted
sink(m25.emplace_hint(m25.begin(), "abc", "def"));
sink(m25);
sink(m25.emplace_hint(m25.begin(), "abc", source())); // tainted [NOT DETECTED]
sink(m25); // tainted [NOT DETECTED]
sink(m25.emplace_hint(m25.begin(), "abc", source())); // tainted
sink(m25); // tainted
// try_emplace
std::unordered_map<char *, char *> m26, m27;
sink(m26.try_emplace("abc", "def").first);
sink(m26.try_emplace("abc", "def").second);
sink(m26);
sink(m26.try_emplace("abc", source()).first); // tainted [NOT DETECTED]
sink(m26.try_emplace("abc", source()).second);
sink(m26); // tainted [NOT DETECTED]
sink(m26.try_emplace("abc", source()).first); // tainted
sink(m26.try_emplace("abc", source()).second); // [FALSE POSITIVE]
sink(m26); // tainted
sink(m27.try_emplace(m27.begin(), "abc", "def"));
sink(m27);
sink(m27.try_emplace(m27.begin(), "abc", source())); // tainted [NOT DETECTED]
sink(m27); // tainted [NOT DETECTED]
sink(m27.try_emplace(m27.begin(), "abc", source())); // tainted
sink(m27); // tainted
// additional emplace test cases
std::unordered_map<char *, std::pair<int, int>> m28, m29, m30, m31;
@@ -409,10 +409,10 @@ void test_unordered_map()
sink(m29.try_emplace(source(), 1, 2)); // tainted [NOT DETECTED]
sink(m29); // tainted [NOT DETECTED]
sink(m29["abc"]);
sink(m30.try_emplace("abc", source(), 2)); // tainted [NOT DETECTED]
sink(m30); // tainted [NOT DETECTED]
sink(m30["abc"]); // tainted [NOT DETECTED]
sink(m31.try_emplace("abc", 1, source())); // tainted [NOT DETECTED]
sink(m31); // tainted [NOT DETECTED]
sink(m31["abc"]); // tainted [NOT DETECTED]
sink(m30.try_emplace("abc", source(), 2)); // tainted
sink(m30); // tainted
sink(m30["abc"]); // tainted
sink(m31.try_emplace("abc", 1, source())); // tainted
sink(m31); // tainted
sink(m31["abc"]); // tainted
}

View File

@@ -92,6 +92,12 @@
| map.cpp:227:7:227:9 | call to map | map.cpp:224:49:224:54 | call to source |
| map.cpp:229:7:229:9 | call to map | map.cpp:223:49:223:54 | call to source |
| map.cpp:229:7:229:9 | call to map | map.cpp:224:49:224:54 | call to source |
| map.cpp:236:7:236:9 | call to map | map.cpp:235:26:235:31 | call to source |
| map.cpp:239:11:239:22 | call to emplace_hint | map.cpp:239:44:239:49 | call to source |
| map.cpp:240:7:240:9 | call to map | map.cpp:239:44:239:49 | call to source |
| map.cpp:247:7:247:9 | call to map | map.cpp:246:30:246:35 | call to source |
| map.cpp:250:11:250:21 | call to try_emplace | map.cpp:250:43:250:48 | call to source |
| map.cpp:251:7:251:9 | call to map | map.cpp:250:43:250:48 | call to source |
| map.cpp:262:10:262:15 | call to insert | map.cpp:262:62:262:67 | call to source |
| map.cpp:264:10:264:25 | call to insert_or_assign | map.cpp:264:46:264:51 | call to source |
| map.cpp:266:7:266:8 | call to unordered_map | map.cpp:260:39:260:44 | call to source |
@@ -135,6 +141,19 @@
| map.cpp:376:7:376:9 | call to unordered_map | map.cpp:373:49:373:54 | call to source |
| map.cpp:378:7:378:9 | call to unordered_map | map.cpp:372:49:372:54 | call to source |
| map.cpp:378:7:378:9 | call to unordered_map | map.cpp:373:49:373:54 | call to source |
| map.cpp:385:7:385:9 | call to unordered_map | map.cpp:384:26:384:31 | call to source |
| map.cpp:388:11:388:22 | call to emplace_hint | map.cpp:388:44:388:49 | call to source |
| map.cpp:389:7:389:9 | call to unordered_map | map.cpp:388:44:388:49 | call to source |
| map.cpp:398:7:398:9 | call to unordered_map | map.cpp:396:30:396:35 | call to source |
| map.cpp:398:7:398:9 | call to unordered_map | map.cpp:397:30:397:35 | call to source |
| map.cpp:401:11:401:21 | call to try_emplace | map.cpp:401:43:401:48 | call to source |
| map.cpp:402:7:402:9 | call to unordered_map | map.cpp:401:43:401:48 | call to source |
| map.cpp:412:7:412:41 | call to pair | map.cpp:412:30:412:35 | call to source |
| map.cpp:413:7:413:9 | call to unordered_map | map.cpp:412:30:412:35 | call to source |
| map.cpp:414:7:414:16 | call to pair | map.cpp:412:30:412:35 | call to source |
| map.cpp:415:7:415:41 | call to pair | map.cpp:415:33:415:38 | call to source |
| map.cpp:416:7:416:9 | call to unordered_map | map.cpp:415:33:415:38 | call to source |
| map.cpp:417:7:417:16 | call to pair | map.cpp:415:33:415:38 | 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

@@ -65,6 +65,12 @@
| map.cpp:227:7:227:9 | map.cpp:224:49:224:54 | AST only |
| map.cpp:229:7:229:9 | map.cpp:223:49:223:54 | AST only |
| map.cpp:229:7:229:9 | map.cpp:224:49:224:54 | AST only |
| map.cpp:235:7:235:40 | map.cpp:235:26:235:31 | IR only |
| map.cpp:236:7:236:9 | map.cpp:235:26:235:31 | AST only |
| map.cpp:240:7:240:9 | map.cpp:239:44:239:49 | AST only |
| map.cpp:246:7:246:44 | map.cpp:246:30:246:35 | IR only |
| map.cpp:247:7:247:9 | map.cpp:246:30:246:35 | AST only |
| map.cpp:251:7:251:9 | map.cpp:250:43:250:48 | AST only |
| map.cpp:260:7:260:54 | map.cpp:260:39:260:44 | IR only |
| map.cpp:263:7:263:48 | map.cpp:263:34:263:39 | IR only |
| map.cpp:266:7:266:8 | map.cpp:260:39:260:44 | AST only |
@@ -102,6 +108,18 @@
| map.cpp:376:7:376:9 | map.cpp:373:49:373:54 | AST only |
| map.cpp:378:7:378:9 | map.cpp:372:49:372:54 | AST only |
| map.cpp:378:7:378:9 | map.cpp:373:49:373:54 | AST only |
| map.cpp:384:7:384:40 | map.cpp:384:26:384:31 | IR only |
| map.cpp:385:7:385:9 | map.cpp:384:26:384:31 | AST only |
| map.cpp:389:7:389:9 | map.cpp:388:44:388:49 | AST only |
| map.cpp:396:7:396:44 | map.cpp:396:30:396:35 | IR only |
| map.cpp:397:40:397:45 | map.cpp:397:30:397:35 | IR only |
| map.cpp:398:7:398:9 | map.cpp:396:30:396:35 | AST only |
| map.cpp:398:7:398:9 | map.cpp:397:30:397:35 | AST only |
| map.cpp:402:7:402:9 | map.cpp:401:43:401:48 | AST only |
| map.cpp:413:7:413:9 | map.cpp:412:30:412:35 | AST only |
| map.cpp:414:7:414:16 | map.cpp:412:30:412:35 | AST only |
| map.cpp:416:7:416:9 | map.cpp:415:33:415:38 | AST only |
| map.cpp:417:7:417:16 | map.cpp:415:33:415:38 | 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 |
| set.cpp:20:7:20:31 | set.cpp:20:17:20:22 | IR only |

View File

@@ -87,6 +87,10 @@
| map.cpp:170:7:170:30 | ... = ... | map.cpp:170:23:170:28 | call to source |
| map.cpp:226:11:226:15 | call to erase | map.cpp:223:49:223:54 | call to source |
| map.cpp:226:11:226:15 | call to erase | map.cpp:224:49:224:54 | call to source |
| map.cpp:235:7:235:40 | call to iterator | map.cpp:235:26:235:31 | call to source |
| map.cpp:239:11:239:22 | call to emplace_hint | map.cpp:239:44:239:49 | call to source |
| map.cpp:246:7:246:44 | call to iterator | map.cpp:246:30:246:35 | call to source |
| map.cpp:250:11:250:21 | call to try_emplace | map.cpp:250:43:250:48 | call to source |
| map.cpp:260:7:260:54 | call to iterator | map.cpp:260:39:260:44 | call to source |
| map.cpp:262:10:262:15 | call to insert | map.cpp:262:62:262:67 | call to source |
| map.cpp:263:7:263:48 | call to iterator | map.cpp:263:34:263:39 | call to source |
@@ -105,6 +109,13 @@
| map.cpp:322:7:322:30 | ... = ... | map.cpp:322:23:322:28 | call to source |
| map.cpp:375:11:375:15 | call to erase | map.cpp:372:49:372:54 | call to source |
| map.cpp:375:11:375:15 | call to erase | map.cpp:373:49:373:54 | call to source |
| map.cpp:384:7:384:40 | call to iterator | map.cpp:384:26:384:31 | call to source |
| map.cpp:388:11:388:22 | call to emplace_hint | map.cpp:388:44:388:49 | call to source |
| map.cpp:396:7:396:44 | call to iterator | map.cpp:396:30:396:35 | call to source |
| map.cpp:397:40:397:45 | second | map.cpp:397:30:397:35 | call to source |
| map.cpp:401:11:401:21 | call to try_emplace | map.cpp:401:43:401:48 | call to source |
| map.cpp:412:7:412:41 | call to pair | map.cpp:412:30:412:35 | call to source |
| map.cpp:415:7:415:41 | call to pair | map.cpp:415:33:415:38 | 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 |