From 836178fbac8564e38e234743decafd3193bd0100 Mon Sep 17 00:00:00 2001 From: Mike Fairhurst Date: Tue, 24 Feb 2026 13:08:13 -0800 Subject: [PATCH 1/2] Fix path problem locations in .expected for 8-1-1, 8-1-2 --- ...sientLambdaImplicitlyCapturesThis.expected | 264 ++++++------ cpp/misra/test/rules/RULE-8-1-1/test.cpp | 36 +- ...resDisallowedInNonTransientLambda.expected | 394 +++++++++--------- cpp/misra/test/rules/RULE-8-1-2/test.cpp | 36 +- 4 files changed, 399 insertions(+), 331 deletions(-) diff --git a/cpp/misra/test/rules/RULE-8-1-1/NonTransientLambdaImplicitlyCapturesThis.expected b/cpp/misra/test/rules/RULE-8-1-1/NonTransientLambdaImplicitlyCapturesThis.expected index fab1b3157..0c487a28d 100644 --- a/cpp/misra/test/rules/RULE-8-1-1/NonTransientLambdaImplicitlyCapturesThis.expected +++ b/cpp/misra/test/rules/RULE-8-1-1/NonTransientLambdaImplicitlyCapturesThis.expected @@ -1,135 +1,135 @@ edges -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | test.cpp:164:14:164:31 | call to forward | | | -| test.cpp:8:59:8:59 | f | test.cpp:10:12:10:12 | f | | | -| test.cpp:8:59:8:59 | f | test.cpp:10:12:10:12 | f | | | -| test.cpp:8:59:8:59 | f | test.cpp:10:12:10:12 | f | | | -| test.cpp:10:12:10:12 | f | test.cpp:10:8:10:8 | l | | | -| test.cpp:10:12:10:12 | f | test.cpp:10:8:10:8 | l | | | -| test.cpp:10:12:10:12 | f | test.cpp:10:8:10:8 | l | | | -| test.cpp:37:14:37:34 | [...](...){...} | test.cpp:37:10:37:11 | l3 | | | -| test.cpp:38:14:38:34 | [...](...){...} | test.cpp:38:10:38:11 | l4 | | | -| test.cpp:41:14:41:48 | [...](...){...} | test.cpp:41:10:41:11 | l7 | | | -| test.cpp:55:28:55:47 | [...](...){...} | test.cpp:8:59:8:59 | f | | | -| test.cpp:56:28:56:47 | [...](...){...} | test.cpp:8:59:8:59 | f | | | -| test.cpp:59:28:59:61 | [...](...){...} | test.cpp:8:59:8:59 | f | | | -| test.cpp:90:39:90:58 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | | | -| test.cpp:91:39:91:58 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | | | -| test.cpp:97:28:97:47 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | | | -| test.cpp:98:28:98:47 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | | | -| test.cpp:135:16:135:38 | ... , ... | test.cpp:135:10:135:11 | l2 | | | -| test.cpp:135:19:135:38 | [...](...){...} | test.cpp:135:16:135:38 | ... , ... | | | -| test.cpp:138:15:138:18 | ... ? ... : ... | test.cpp:138:10:138:11 | l4 | | | -| test.cpp:138:22:138:41 | [...](...){...} | test.cpp:138:15:138:18 | ... ? ... : ... | | | -| test.cpp:141:15:141:18 | ... ? ... : ... | test.cpp:141:10:141:11 | l6 | | | -| test.cpp:141:38:141:57 | [...](...){...} | test.cpp:141:15:141:18 | ... ? ... : ... | | | -| test.cpp:153:39:153:58 | [...](...){...} | test.cpp:145:31:145:63 | function_outside_translation_unit | | | -| test.cpp:154:39:154:58 | [...](...){...} | test.cpp:145:31:145:63 | function_outside_translation_unit | | | -| test.cpp:163:47:163:47 | f | test.cpp:164:33:164:33 | f | | | -| test.cpp:164:14:164:31 | call to forward | test.cpp:164:5:164:35 | new | | | -| test.cpp:164:33:164:33 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| test.cpp:176:15:176:34 | [...](...){...} | test.cpp:163:47:163:47 | f | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:23:28:23:28 | t | test.cpp:32:58:32:72 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:32:58:32:72 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:32:58:32:72 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:32:58:32:72 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:198:14:198:31 | call to forward | | | +| test.cpp:32:35:32:35 | f | test.cpp:32:74:32:74 | f | | | +| test.cpp:32:35:32:35 | f | test.cpp:32:74:32:74 | f | | | +| test.cpp:32:35:32:35 | f | test.cpp:32:74:32:74 | f | | | +| test.cpp:32:35:32:35 | f | test.cpp:32:74:32:74 | f | | | +| test.cpp:32:58:32:72 | call to forward | test.cpp:32:52:32:76 | new | | | +| test.cpp:32:58:32:72 | call to forward | test.cpp:32:52:32:76 | new | | | +| test.cpp:32:58:32:72 | call to forward | test.cpp:32:52:32:76 | new | | | +| test.cpp:32:58:32:72 | call to forward | test.cpp:32:52:32:76 | new | | | +| test.cpp:32:74:32:74 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:32:74:32:74 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:32:74:32:74 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:32:74:32:74 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:42:59:42:59 | f | test.cpp:44:12:44:12 | f | | | +| test.cpp:42:59:42:59 | f | test.cpp:44:12:44:12 | f | | | +| test.cpp:42:59:42:59 | f | test.cpp:44:12:44:12 | f | | | +| test.cpp:44:12:44:12 | f | test.cpp:44:8:44:8 | l | | | +| test.cpp:44:12:44:12 | f | test.cpp:44:8:44:8 | l | | | +| test.cpp:44:12:44:12 | f | test.cpp:44:8:44:8 | l | | | +| test.cpp:71:14:71:34 | [...](...){...} | test.cpp:71:10:71:11 | l3 | | | +| test.cpp:72:14:72:34 | [...](...){...} | test.cpp:72:10:72:11 | l4 | | | +| test.cpp:75:14:75:48 | [...](...){...} | test.cpp:75:10:75:11 | l7 | | | +| test.cpp:89:28:89:47 | [...](...){...} | test.cpp:42:59:42:59 | f | | | +| test.cpp:90:28:90:47 | [...](...){...} | test.cpp:42:59:42:59 | f | | | +| test.cpp:93:28:93:61 | [...](...){...} | test.cpp:42:59:42:59 | f | | | +| test.cpp:124:39:124:58 | [...](...){...} | test.cpp:32:35:32:35 | f | | | +| test.cpp:125:39:125:58 | [...](...){...} | test.cpp:32:35:32:35 | f | | | +| test.cpp:131:28:131:47 | [...](...){...} | test.cpp:32:35:32:35 | f | | | +| test.cpp:132:28:132:47 | [...](...){...} | test.cpp:32:35:32:35 | f | | | +| test.cpp:169:16:169:38 | ... , ... | test.cpp:169:10:169:11 | l2 | | | +| test.cpp:169:19:169:38 | [...](...){...} | test.cpp:169:16:169:38 | ... , ... | | | +| test.cpp:172:15:172:18 | ... ? ... : ... | test.cpp:172:10:172:11 | l4 | | | +| test.cpp:172:22:172:41 | [...](...){...} | test.cpp:172:15:172:18 | ... ? ... : ... | | | +| test.cpp:175:15:175:18 | ... ? ... : ... | test.cpp:175:10:175:11 | l6 | | | +| test.cpp:175:38:175:57 | [...](...){...} | test.cpp:175:15:175:18 | ... ? ... : ... | | | +| test.cpp:187:39:187:58 | [...](...){...} | test.cpp:179:31:179:63 | function_outside_translation_unit | | | +| test.cpp:188:39:188:58 | [...](...){...} | test.cpp:179:31:179:63 | function_outside_translation_unit | | | +| test.cpp:197:47:197:47 | f | test.cpp:198:33:198:33 | f | | | +| test.cpp:198:14:198:31 | call to forward | test.cpp:198:5:198:35 | new | | | +| test.cpp:198:33:198:33 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:210:15:210:34 | [...](...){...} | test.cpp:197:47:197:47 | f | | | nodes -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | semmle.label | new | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | semmle.label | new | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | semmle.label | new | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | semmle.label | new | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | semmle.label | call to forward | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | semmle.label | call to forward | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | semmle.label | call to forward | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | semmle.label | call to forward | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| test.cpp:8:59:8:59 | f | semmle.label | f | -| test.cpp:8:59:8:59 | f | semmle.label | f | -| test.cpp:8:59:8:59 | f | semmle.label | f | -| test.cpp:10:8:10:8 | l | semmle.label | l | -| test.cpp:10:8:10:8 | l | semmle.label | l | -| test.cpp:10:8:10:8 | l | semmle.label | l | -| test.cpp:10:12:10:12 | f | semmle.label | f | -| test.cpp:10:12:10:12 | f | semmle.label | f | -| test.cpp:10:12:10:12 | f | semmle.label | f | -| test.cpp:37:10:37:11 | l3 | semmle.label | l3 | -| test.cpp:37:14:37:34 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:38:10:38:11 | l4 | semmle.label | l4 | -| test.cpp:38:14:38:34 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:41:10:41:11 | l7 | semmle.label | l7 | -| test.cpp:41:14:41:48 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:55:28:55:47 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:56:28:56:47 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:59:28:59:61 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:90:39:90:58 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:91:39:91:58 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:97:28:97:47 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:98:28:98:47 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:135:10:135:11 | l2 | semmle.label | l2 | -| test.cpp:135:16:135:38 | ... , ... | semmle.label | ... , ... | -| test.cpp:135:19:135:38 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:138:10:138:11 | l4 | semmle.label | l4 | -| test.cpp:138:15:138:18 | ... ? ... : ... | semmle.label | ... ? ... : ... | -| test.cpp:138:22:138:41 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:141:10:141:11 | l6 | semmle.label | l6 | -| test.cpp:141:15:141:18 | ... ? ... : ... | semmle.label | ... ? ... : ... | -| test.cpp:141:38:141:57 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:145:31:145:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | -| test.cpp:145:31:145:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | -| test.cpp:153:39:153:58 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:154:39:154:58 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:163:47:163:47 | f | semmle.label | f | -| test.cpp:164:5:164:35 | new | semmle.label | new | -| test.cpp:164:14:164:31 | call to forward | semmle.label | call to forward | -| test.cpp:164:33:164:33 | f | semmle.label | f | -| test.cpp:176:15:176:34 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:32:35:32:35 | f | semmle.label | f | +| test.cpp:32:35:32:35 | f | semmle.label | f | +| test.cpp:32:35:32:35 | f | semmle.label | f | +| test.cpp:32:35:32:35 | f | semmle.label | f | +| test.cpp:32:52:32:76 | new | semmle.label | new | +| test.cpp:32:52:32:76 | new | semmle.label | new | +| test.cpp:32:52:32:76 | new | semmle.label | new | +| test.cpp:32:52:32:76 | new | semmle.label | new | +| test.cpp:32:58:32:72 | call to forward | semmle.label | call to forward | +| test.cpp:32:58:32:72 | call to forward | semmle.label | call to forward | +| test.cpp:32:58:32:72 | call to forward | semmle.label | call to forward | +| test.cpp:32:58:32:72 | call to forward | semmle.label | call to forward | +| test.cpp:32:74:32:74 | f | semmle.label | f | +| test.cpp:32:74:32:74 | f | semmle.label | f | +| test.cpp:32:74:32:74 | f | semmle.label | f | +| test.cpp:32:74:32:74 | f | semmle.label | f | +| test.cpp:42:59:42:59 | f | semmle.label | f | +| test.cpp:42:59:42:59 | f | semmle.label | f | +| test.cpp:42:59:42:59 | f | semmle.label | f | +| test.cpp:44:8:44:8 | l | semmle.label | l | +| test.cpp:44:8:44:8 | l | semmle.label | l | +| test.cpp:44:8:44:8 | l | semmle.label | l | +| test.cpp:44:12:44:12 | f | semmle.label | f | +| test.cpp:44:12:44:12 | f | semmle.label | f | +| test.cpp:44:12:44:12 | f | semmle.label | f | +| test.cpp:71:10:71:11 | l3 | semmle.label | l3 | +| test.cpp:71:14:71:34 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:72:10:72:11 | l4 | semmle.label | l4 | +| test.cpp:72:14:72:34 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:75:10:75:11 | l7 | semmle.label | l7 | +| test.cpp:75:14:75:48 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:89:28:89:47 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:90:28:90:47 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:93:28:93:61 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:124:39:124:58 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:125:39:125:58 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:131:28:131:47 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:132:28:132:47 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:169:10:169:11 | l2 | semmle.label | l2 | +| test.cpp:169:16:169:38 | ... , ... | semmle.label | ... , ... | +| test.cpp:169:19:169:38 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:172:10:172:11 | l4 | semmle.label | l4 | +| test.cpp:172:15:172:18 | ... ? ... : ... | semmle.label | ... ? ... : ... | +| test.cpp:172:22:172:41 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:175:10:175:11 | l6 | semmle.label | l6 | +| test.cpp:175:15:175:18 | ... ? ... : ... | semmle.label | ... ? ... : ... | +| test.cpp:175:38:175:57 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:179:31:179:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | +| test.cpp:179:31:179:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | +| test.cpp:187:39:187:58 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:188:39:188:58 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:197:47:197:47 | f | semmle.label | f | +| test.cpp:198:5:198:35 | new | semmle.label | new | +| test.cpp:198:14:198:31 | call to forward | semmle.label | call to forward | +| test.cpp:198:33:198:33 | f | semmle.label | f | +| test.cpp:210:15:210:34 | [...](...){...} | semmle.label | [...](...){...} | #select -| test.cpp:37:14:37:34 | [...](...){...} | test.cpp:37:14:37:34 | [...](...){...} | test.cpp:37:10:37:11 | l3 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:38:14:38:34 | [...](...){...} | test.cpp:38:14:38:34 | [...](...){...} | test.cpp:38:10:38:11 | l4 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:41:14:41:48 | [...](...){...} | test.cpp:41:14:41:48 | [...](...){...} | test.cpp:41:10:41:11 | l7 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:55:28:55:47 | [...](...){...} | test.cpp:55:28:55:47 | [...](...){...} | test.cpp:10:8:10:8 | l | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:56:28:56:47 | [...](...){...} | test.cpp:56:28:56:47 | [...](...){...} | test.cpp:10:8:10:8 | l | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:59:28:59:61 | [...](...){...} | test.cpp:59:28:59:61 | [...](...){...} | test.cpp:10:8:10:8 | l | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:90:39:90:58 | [...](...){...} | test.cpp:90:39:90:58 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:91:39:91:58 | [...](...){...} | test.cpp:91:39:91:58 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:97:28:97:47 | [...](...){...} | test.cpp:97:28:97:47 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:98:28:98:47 | [...](...){...} | test.cpp:98:28:98:47 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:23:7:23:8 | C1 | C1 | -| test.cpp:135:19:135:38 | [...](...){...} | test.cpp:135:19:135:38 | [...](...){...} | test.cpp:135:10:135:11 | l2 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:131:7:131:8 | C2 | C2 | -| test.cpp:138:22:138:41 | [...](...){...} | test.cpp:138:22:138:41 | [...](...){...} | test.cpp:138:10:138:11 | l4 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:131:7:131:8 | C2 | C2 | -| test.cpp:141:38:141:57 | [...](...){...} | test.cpp:141:38:141:57 | [...](...){...} | test.cpp:141:10:141:11 | l6 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:131:7:131:8 | C2 | C2 | -| test.cpp:153:39:153:58 | [...](...){...} | test.cpp:153:39:153:58 | [...](...){...} | test.cpp:145:31:145:63 | function_outside_translation_unit | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is passed to a different translation unit. | test.cpp:147:7:147:8 | C3 | C3 | -| test.cpp:154:39:154:58 | [...](...){...} | test.cpp:154:39:154:58 | [...](...){...} | test.cpp:145:31:145:63 | function_outside_translation_unit | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is passed to a different translation unit. | test.cpp:147:7:147:8 | C3 | C3 | -| test.cpp:176:15:176:34 | [...](...){...} | test.cpp:176:15:176:34 | [...](...){...} | test.cpp:164:5:164:35 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:168:7:168:8 | C4 | C4 | +| test.cpp:71:14:71:34 | [...](...){...} | test.cpp:71:14:71:34 | [...](...){...} | test.cpp:71:10:71:11 | l3 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:72:14:72:34 | [...](...){...} | test.cpp:72:14:72:34 | [...](...){...} | test.cpp:72:10:72:11 | l4 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:75:14:75:48 | [...](...){...} | test.cpp:75:14:75:48 | [...](...){...} | test.cpp:75:10:75:11 | l7 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:89:28:89:47 | [...](...){...} | test.cpp:89:28:89:47 | [...](...){...} | test.cpp:44:8:44:8 | l | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:90:28:90:47 | [...](...){...} | test.cpp:90:28:90:47 | [...](...){...} | test.cpp:44:8:44:8 | l | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:93:28:93:61 | [...](...){...} | test.cpp:93:28:93:61 | [...](...){...} | test.cpp:44:8:44:8 | l | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:124:39:124:58 | [...](...){...} | test.cpp:124:39:124:58 | [...](...){...} | test.cpp:32:52:32:76 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:125:39:125:58 | [...](...){...} | test.cpp:125:39:125:58 | [...](...){...} | test.cpp:32:52:32:76 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:131:28:131:47 | [...](...){...} | test.cpp:131:28:131:47 | [...](...){...} | test.cpp:32:52:32:76 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:132:28:132:47 | [...](...){...} | test.cpp:132:28:132:47 | [...](...){...} | test.cpp:32:52:32:76 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:57:7:57:8 | C1 | C1 | +| test.cpp:169:19:169:38 | [...](...){...} | test.cpp:169:19:169:38 | [...](...){...} | test.cpp:169:10:169:11 | l2 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:165:7:165:8 | C2 | C2 | +| test.cpp:172:22:172:41 | [...](...){...} | test.cpp:172:22:172:41 | [...](...){...} | test.cpp:172:10:172:11 | l4 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:165:7:165:8 | C2 | C2 | +| test.cpp:175:38:175:57 | [...](...){...} | test.cpp:175:38:175:57 | [...](...){...} | test.cpp:175:10:175:11 | l6 | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:165:7:165:8 | C2 | C2 | +| test.cpp:187:39:187:58 | [...](...){...} | test.cpp:187:39:187:58 | [...](...){...} | test.cpp:179:31:179:63 | function_outside_translation_unit | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is passed to a different translation unit. | test.cpp:181:7:181:8 | C3 | C3 | +| test.cpp:188:39:188:58 | [...](...){...} | test.cpp:188:39:188:58 | [...](...){...} | test.cpp:179:31:179:63 | function_outside_translation_unit | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is passed to a different translation unit. | test.cpp:181:7:181:8 | C3 | C3 | +| test.cpp:210:15:210:34 | [...](...){...} | test.cpp:210:15:210:34 | [...](...){...} | test.cpp:198:5:198:35 | new | Lambda implicitly captures `this` pointer of $@, making its lifetime dependent on the lifetime of the class object, and the lambda is not considered transient because it is copied or moved. | test.cpp:202:7:202:8 | C4 | C4 | diff --git a/cpp/misra/test/rules/RULE-8-1-1/test.cpp b/cpp/misra/test/rules/RULE-8-1-1/test.cpp index 123ce6ede..5cb3d1541 100644 --- a/cpp/misra/test/rules/RULE-8-1-1/test.cpp +++ b/cpp/misra/test/rules/RULE-8-1-1/test.cpp @@ -1,4 +1,38 @@ -#include +#include + +/** + * Declare relevant parts of std utilities here, so that the resulting path + * problem nodes and edges are all local paths and don't refer to the actual + * standard library implementation. + * + * This approach reduces the burden of managing compiler compatibility results + * (since the exact names and source locations etc will vary between compilers + * and versions), and also fixes local vs CI/CD compatibility where absolute + * paths differ. + * + * However, note that does not fix all issues. Users still will have these + * absolute paths appear in their own results, which results in unviewable + * locations inside GitHub code scanning. However, the fix to this would likely + * require defining our own data modeling for where lambdas are stored in the + * standard library, which is not work we have yet performed. In the meantime, + * including these unviewable locations will hopefully still help users track + * the storage locations of their lambdas. + */ +namespace std { +template constexpr T &&forward(remove_reference_t &t) noexcept { + return static_cast(t); +} +template constexpr T &&forward(remove_reference_t &&t) noexcept { + return static_cast(t); +} +template class function; +template class function { +public: + function(); + template function(F &&f) { auto fptr = new F(std::forward(f)); } + template function &operator=(F &&); +}; +} // namespace std template void function_transient(Func f) { // transient, does not store. diff --git a/cpp/misra/test/rules/RULE-8-1-2/ImplicitCapturesDisallowedInNonTransientLambda.expected b/cpp/misra/test/rules/RULE-8-1-2/ImplicitCapturesDisallowedInNonTransientLambda.expected index 384ec1ec1..e70f6ef09 100644 --- a/cpp/misra/test/rules/RULE-8-1-2/ImplicitCapturesDisallowedInNonTransientLambda.expected +++ b/cpp/misra/test/rules/RULE-8-1-2/ImplicitCapturesDisallowedInNonTransientLambda.expected @@ -1,200 +1,200 @@ edges -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | test.cpp:153:52:153:69 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | test.cpp:153:52:153:69 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | test.cpp:153:52:153:69 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | test.cpp:153:52:153:69 | call to forward | | | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | test.cpp:158:46:158:63 | call to forward | | | -| test.cpp:8:59:8:59 | f | test.cpp:10:12:10:12 | f | | | -| test.cpp:8:59:8:59 | f | test.cpp:10:12:10:12 | f | | | -| test.cpp:8:59:8:59 | f | test.cpp:10:12:10:12 | f | | | -| test.cpp:10:12:10:12 | f | test.cpp:10:8:10:8 | l | | | -| test.cpp:10:12:10:12 | f | test.cpp:10:8:10:8 | l | | | -| test.cpp:10:12:10:12 | f | test.cpp:10:8:10:8 | l | | | -| test.cpp:36:13:36:33 | [...](...){...} | test.cpp:36:8:36:10 | la3 | | | -| test.cpp:37:13:37:33 | [...](...){...} | test.cpp:37:8:37:10 | la4 | | | -| test.cpp:40:13:40:42 | [...](...){...} | test.cpp:40:8:40:10 | la7 | | | -| test.cpp:54:26:54:45 | [...](...){...} | test.cpp:8:59:8:59 | f | | | -| test.cpp:55:26:55:45 | [...](...){...} | test.cpp:8:59:8:59 | f | | | -| test.cpp:58:26:58:54 | [...](...){...} | test.cpp:8:59:8:59 | f | | | -| test.cpp:86:37:86:56 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | | | -| test.cpp:87:37:87:56 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | | | -| test.cpp:92:26:92:45 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | | | -| test.cpp:93:26:93:45 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | | | -| test.cpp:119:13:119:33 | [...](...){...} | test.cpp:119:8:119:10 | la7 | | | -| test.cpp:120:13:120:33 | [...](...){...} | test.cpp:120:8:120:10 | la8 | | | -| test.cpp:127:15:127:36 | ... , ... | test.cpp:127:8:127:10 | lb2 | | | -| test.cpp:127:18:127:36 | [...](...){...} | test.cpp:127:15:127:36 | ... , ... | | | -| test.cpp:130:14:130:17 | ... ? ... : ... | test.cpp:130:8:130:10 | lb4 | | | -| test.cpp:130:21:130:39 | [...](...){...} | test.cpp:130:14:130:17 | ... ? ... : ... | | | -| test.cpp:133:14:133:17 | ... ? ... : ... | test.cpp:133:8:133:10 | lb6 | | | -| test.cpp:133:37:133:55 | [...](...){...} | test.cpp:133:14:133:17 | ... ? ... : ... | | | -| test.cpp:143:37:143:56 | [...](...){...} | test.cpp:136:31:136:63 | function_outside_translation_unit | | | -| test.cpp:144:37:144:56 | [...](...){...} | test.cpp:136:31:136:63 | function_outside_translation_unit | | | -| test.cpp:148:7:148:35 | [...](...){...} | test.cpp:136:31:136:63 | function_outside_translation_unit | | | -| test.cpp:153:38:153:38 | f | test.cpp:153:71:153:71 | f | | | -| test.cpp:153:38:153:38 | f | test.cpp:153:71:153:71 | f | | | -| test.cpp:153:38:153:38 | f | test.cpp:153:71:153:71 | f | | | -| test.cpp:153:38:153:38 | f | test.cpp:153:71:153:71 | f | | | -| test.cpp:153:52:153:69 | call to forward | test.cpp:153:43:153:73 | new | | | -| test.cpp:153:52:153:69 | call to forward | test.cpp:153:43:153:73 | new | | | -| test.cpp:153:52:153:69 | call to forward | test.cpp:153:43:153:73 | new | | | -| test.cpp:153:52:153:69 | call to forward | test.cpp:153:43:153:73 | new | | | -| test.cpp:153:71:153:71 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| test.cpp:153:71:153:71 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| test.cpp:153:71:153:71 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| test.cpp:153:71:153:71 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| test.cpp:158:38:158:38 | f | test.cpp:158:65:158:65 | f | | | -| test.cpp:158:46:158:63 | call to forward | test.cpp:153:38:153:38 | f | | | -| test.cpp:158:65:158:65 | f | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | | | -| test.cpp:171:9:171:28 | [...](...){...} | test.cpp:153:38:153:38 | f | | | -| test.cpp:172:9:172:28 | [...](...){...} | test.cpp:153:38:153:38 | f | | | -| test.cpp:175:9:175:37 | [...](...){...} | test.cpp:153:38:153:38 | f | | | -| test.cpp:178:10:178:29 | [...](...){...} | test.cpp:158:38:158:38 | f | | | -| test.cpp:181:10:181:29 | [...](...){...} | test.cpp:163:28:163:29 | C3 | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:22:65:22:65 | t | test.cpp:23:28:23:28 | t | | | +| test.cpp:23:28:23:28 | t | test.cpp:32:58:32:72 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:32:58:32:72 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:32:58:32:72 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:32:58:32:72 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:187:52:187:69 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:187:52:187:69 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:187:52:187:69 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:187:52:187:69 | call to forward | | | +| test.cpp:23:28:23:28 | t | test.cpp:192:46:192:63 | call to forward | | | +| test.cpp:32:35:32:35 | f | test.cpp:32:74:32:74 | f | | | +| test.cpp:32:35:32:35 | f | test.cpp:32:74:32:74 | f | | | +| test.cpp:32:35:32:35 | f | test.cpp:32:74:32:74 | f | | | +| test.cpp:32:35:32:35 | f | test.cpp:32:74:32:74 | f | | | +| test.cpp:32:58:32:72 | call to forward | test.cpp:32:52:32:76 | new | | | +| test.cpp:32:58:32:72 | call to forward | test.cpp:32:52:32:76 | new | | | +| test.cpp:32:58:32:72 | call to forward | test.cpp:32:52:32:76 | new | | | +| test.cpp:32:58:32:72 | call to forward | test.cpp:32:52:32:76 | new | | | +| test.cpp:32:74:32:74 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:32:74:32:74 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:32:74:32:74 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:32:74:32:74 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:42:59:42:59 | f | test.cpp:44:12:44:12 | f | | | +| test.cpp:42:59:42:59 | f | test.cpp:44:12:44:12 | f | | | +| test.cpp:42:59:42:59 | f | test.cpp:44:12:44:12 | f | | | +| test.cpp:44:12:44:12 | f | test.cpp:44:8:44:8 | l | | | +| test.cpp:44:12:44:12 | f | test.cpp:44:8:44:8 | l | | | +| test.cpp:44:12:44:12 | f | test.cpp:44:8:44:8 | l | | | +| test.cpp:70:13:70:33 | [...](...){...} | test.cpp:70:8:70:10 | la3 | | | +| test.cpp:71:13:71:33 | [...](...){...} | test.cpp:71:8:71:10 | la4 | | | +| test.cpp:74:13:74:42 | [...](...){...} | test.cpp:74:8:74:10 | la7 | | | +| test.cpp:88:26:88:45 | [...](...){...} | test.cpp:42:59:42:59 | f | | | +| test.cpp:89:26:89:45 | [...](...){...} | test.cpp:42:59:42:59 | f | | | +| test.cpp:92:26:92:54 | [...](...){...} | test.cpp:42:59:42:59 | f | | | +| test.cpp:120:37:120:56 | [...](...){...} | test.cpp:32:35:32:35 | f | | | +| test.cpp:121:37:121:56 | [...](...){...} | test.cpp:32:35:32:35 | f | | | +| test.cpp:126:26:126:45 | [...](...){...} | test.cpp:32:35:32:35 | f | | | +| test.cpp:127:26:127:45 | [...](...){...} | test.cpp:32:35:32:35 | f | | | +| test.cpp:153:13:153:33 | [...](...){...} | test.cpp:153:8:153:10 | la7 | | | +| test.cpp:154:13:154:33 | [...](...){...} | test.cpp:154:8:154:10 | la8 | | | +| test.cpp:161:15:161:36 | ... , ... | test.cpp:161:8:161:10 | lb2 | | | +| test.cpp:161:18:161:36 | [...](...){...} | test.cpp:161:15:161:36 | ... , ... | | | +| test.cpp:164:14:164:17 | ... ? ... : ... | test.cpp:164:8:164:10 | lb4 | | | +| test.cpp:164:21:164:39 | [...](...){...} | test.cpp:164:14:164:17 | ... ? ... : ... | | | +| test.cpp:167:14:167:17 | ... ? ... : ... | test.cpp:167:8:167:10 | lb6 | | | +| test.cpp:167:37:167:55 | [...](...){...} | test.cpp:167:14:167:17 | ... ? ... : ... | | | +| test.cpp:177:37:177:56 | [...](...){...} | test.cpp:170:31:170:63 | function_outside_translation_unit | | | +| test.cpp:178:37:178:56 | [...](...){...} | test.cpp:170:31:170:63 | function_outside_translation_unit | | | +| test.cpp:182:7:182:35 | [...](...){...} | test.cpp:170:31:170:63 | function_outside_translation_unit | | | +| test.cpp:187:38:187:38 | f | test.cpp:187:71:187:71 | f | | | +| test.cpp:187:38:187:38 | f | test.cpp:187:71:187:71 | f | | | +| test.cpp:187:38:187:38 | f | test.cpp:187:71:187:71 | f | | | +| test.cpp:187:38:187:38 | f | test.cpp:187:71:187:71 | f | | | +| test.cpp:187:52:187:69 | call to forward | test.cpp:187:43:187:73 | new | | | +| test.cpp:187:52:187:69 | call to forward | test.cpp:187:43:187:73 | new | | | +| test.cpp:187:52:187:69 | call to forward | test.cpp:187:43:187:73 | new | | | +| test.cpp:187:52:187:69 | call to forward | test.cpp:187:43:187:73 | new | | | +| test.cpp:187:71:187:71 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:187:71:187:71 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:187:71:187:71 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:187:71:187:71 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:192:38:192:38 | f | test.cpp:192:65:192:65 | f | | | +| test.cpp:192:46:192:63 | call to forward | test.cpp:187:38:187:38 | f | | | +| test.cpp:192:65:192:65 | f | test.cpp:22:65:22:65 | t | | | +| test.cpp:205:9:205:28 | [...](...){...} | test.cpp:187:38:187:38 | f | | | +| test.cpp:206:9:206:28 | [...](...){...} | test.cpp:187:38:187:38 | f | | | +| test.cpp:209:9:209:37 | [...](...){...} | test.cpp:187:38:187:38 | f | | | +| test.cpp:212:10:212:29 | [...](...){...} | test.cpp:192:38:192:38 | f | | | +| test.cpp:215:10:215:29 | [...](...){...} | test.cpp:197:28:197:29 | C3 | | | nodes -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:92:35:92:35 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | semmle.label | new | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | semmle.label | new | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | semmle.label | new | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | semmle.label | new | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | semmle.label | call to forward | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | semmle.label | call to forward | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | semmle.label | call to forward | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:23:93:37 | call to forward | semmle.label | call to forward | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:39:93:39 | f | semmle.label | f | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:6:65:6:65 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/utility.h:7:29:7:29 | t | semmle.label | t | -| test.cpp:8:59:8:59 | f | semmle.label | f | -| test.cpp:8:59:8:59 | f | semmle.label | f | -| test.cpp:8:59:8:59 | f | semmle.label | f | -| test.cpp:10:8:10:8 | l | semmle.label | l | -| test.cpp:10:8:10:8 | l | semmle.label | l | -| test.cpp:10:8:10:8 | l | semmle.label | l | -| test.cpp:10:12:10:12 | f | semmle.label | f | -| test.cpp:10:12:10:12 | f | semmle.label | f | -| test.cpp:10:12:10:12 | f | semmle.label | f | -| test.cpp:36:8:36:10 | la3 | semmle.label | la3 | -| test.cpp:36:13:36:33 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:37:8:37:10 | la4 | semmle.label | la4 | -| test.cpp:37:13:37:33 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:40:8:40:10 | la7 | semmle.label | la7 | -| test.cpp:40:13:40:42 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:54:26:54:45 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:55:26:55:45 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:58:26:58:54 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:86:37:86:56 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:87:37:87:56 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:92:26:92:45 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:93:26:93:45 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:119:8:119:10 | la7 | semmle.label | la7 | -| test.cpp:119:13:119:33 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:120:8:120:10 | la8 | semmle.label | la8 | -| test.cpp:120:13:120:33 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:127:8:127:10 | lb2 | semmle.label | lb2 | -| test.cpp:127:15:127:36 | ... , ... | semmle.label | ... , ... | -| test.cpp:127:18:127:36 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:130:8:130:10 | lb4 | semmle.label | lb4 | -| test.cpp:130:14:130:17 | ... ? ... : ... | semmle.label | ... ? ... : ... | -| test.cpp:130:21:130:39 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:133:8:133:10 | lb6 | semmle.label | lb6 | -| test.cpp:133:14:133:17 | ... ? ... : ... | semmle.label | ... ? ... : ... | -| test.cpp:133:37:133:55 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:136:31:136:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | -| test.cpp:136:31:136:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | -| test.cpp:136:31:136:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | -| test.cpp:143:37:143:56 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:144:37:144:56 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:148:7:148:35 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:153:38:153:38 | f | semmle.label | f | -| test.cpp:153:38:153:38 | f | semmle.label | f | -| test.cpp:153:38:153:38 | f | semmle.label | f | -| test.cpp:153:38:153:38 | f | semmle.label | f | -| test.cpp:153:43:153:73 | new | semmle.label | new | -| test.cpp:153:43:153:73 | new | semmle.label | new | -| test.cpp:153:43:153:73 | new | semmle.label | new | -| test.cpp:153:43:153:73 | new | semmle.label | new | -| test.cpp:153:52:153:69 | call to forward | semmle.label | call to forward | -| test.cpp:153:52:153:69 | call to forward | semmle.label | call to forward | -| test.cpp:153:52:153:69 | call to forward | semmle.label | call to forward | -| test.cpp:153:52:153:69 | call to forward | semmle.label | call to forward | -| test.cpp:153:71:153:71 | f | semmle.label | f | -| test.cpp:153:71:153:71 | f | semmle.label | f | -| test.cpp:153:71:153:71 | f | semmle.label | f | -| test.cpp:153:71:153:71 | f | semmle.label | f | -| test.cpp:158:38:158:38 | f | semmle.label | f | -| test.cpp:158:46:158:63 | call to forward | semmle.label | call to forward | -| test.cpp:158:65:158:65 | f | semmle.label | f | -| test.cpp:163:28:163:29 | C3 | semmle.label | C3 | -| test.cpp:171:9:171:28 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:172:9:172:28 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:175:9:175:37 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:178:10:178:29 | [...](...){...} | semmle.label | [...](...){...} | -| test.cpp:181:10:181:29 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:22:65:22:65 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:23:28:23:28 | t | semmle.label | t | +| test.cpp:32:35:32:35 | f | semmle.label | f | +| test.cpp:32:35:32:35 | f | semmle.label | f | +| test.cpp:32:35:32:35 | f | semmle.label | f | +| test.cpp:32:35:32:35 | f | semmle.label | f | +| test.cpp:32:52:32:76 | new | semmle.label | new | +| test.cpp:32:52:32:76 | new | semmle.label | new | +| test.cpp:32:52:32:76 | new | semmle.label | new | +| test.cpp:32:52:32:76 | new | semmle.label | new | +| test.cpp:32:58:32:72 | call to forward | semmle.label | call to forward | +| test.cpp:32:58:32:72 | call to forward | semmle.label | call to forward | +| test.cpp:32:58:32:72 | call to forward | semmle.label | call to forward | +| test.cpp:32:58:32:72 | call to forward | semmle.label | call to forward | +| test.cpp:32:74:32:74 | f | semmle.label | f | +| test.cpp:32:74:32:74 | f | semmle.label | f | +| test.cpp:32:74:32:74 | f | semmle.label | f | +| test.cpp:32:74:32:74 | f | semmle.label | f | +| test.cpp:42:59:42:59 | f | semmle.label | f | +| test.cpp:42:59:42:59 | f | semmle.label | f | +| test.cpp:42:59:42:59 | f | semmle.label | f | +| test.cpp:44:8:44:8 | l | semmle.label | l | +| test.cpp:44:8:44:8 | l | semmle.label | l | +| test.cpp:44:8:44:8 | l | semmle.label | l | +| test.cpp:44:12:44:12 | f | semmle.label | f | +| test.cpp:44:12:44:12 | f | semmle.label | f | +| test.cpp:44:12:44:12 | f | semmle.label | f | +| test.cpp:70:8:70:10 | la3 | semmle.label | la3 | +| test.cpp:70:13:70:33 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:71:8:71:10 | la4 | semmle.label | la4 | +| test.cpp:71:13:71:33 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:74:8:74:10 | la7 | semmle.label | la7 | +| test.cpp:74:13:74:42 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:88:26:88:45 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:89:26:89:45 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:92:26:92:54 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:120:37:120:56 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:121:37:121:56 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:126:26:126:45 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:127:26:127:45 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:153:8:153:10 | la7 | semmle.label | la7 | +| test.cpp:153:13:153:33 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:154:8:154:10 | la8 | semmle.label | la8 | +| test.cpp:154:13:154:33 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:161:8:161:10 | lb2 | semmle.label | lb2 | +| test.cpp:161:15:161:36 | ... , ... | semmle.label | ... , ... | +| test.cpp:161:18:161:36 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:164:8:164:10 | lb4 | semmle.label | lb4 | +| test.cpp:164:14:164:17 | ... ? ... : ... | semmle.label | ... ? ... : ... | +| test.cpp:164:21:164:39 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:167:8:167:10 | lb6 | semmle.label | lb6 | +| test.cpp:167:14:167:17 | ... ? ... : ... | semmle.label | ... ? ... : ... | +| test.cpp:167:37:167:55 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:170:31:170:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | +| test.cpp:170:31:170:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | +| test.cpp:170:31:170:63 | function_outside_translation_unit | semmle.label | function_outside_translation_unit | +| test.cpp:177:37:177:56 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:178:37:178:56 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:182:7:182:35 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:187:38:187:38 | f | semmle.label | f | +| test.cpp:187:38:187:38 | f | semmle.label | f | +| test.cpp:187:38:187:38 | f | semmle.label | f | +| test.cpp:187:38:187:38 | f | semmle.label | f | +| test.cpp:187:43:187:73 | new | semmle.label | new | +| test.cpp:187:43:187:73 | new | semmle.label | new | +| test.cpp:187:43:187:73 | new | semmle.label | new | +| test.cpp:187:43:187:73 | new | semmle.label | new | +| test.cpp:187:52:187:69 | call to forward | semmle.label | call to forward | +| test.cpp:187:52:187:69 | call to forward | semmle.label | call to forward | +| test.cpp:187:52:187:69 | call to forward | semmle.label | call to forward | +| test.cpp:187:52:187:69 | call to forward | semmle.label | call to forward | +| test.cpp:187:71:187:71 | f | semmle.label | f | +| test.cpp:187:71:187:71 | f | semmle.label | f | +| test.cpp:187:71:187:71 | f | semmle.label | f | +| test.cpp:187:71:187:71 | f | semmle.label | f | +| test.cpp:192:38:192:38 | f | semmle.label | f | +| test.cpp:192:46:192:63 | call to forward | semmle.label | call to forward | +| test.cpp:192:65:192:65 | f | semmle.label | f | +| test.cpp:197:28:197:29 | C3 | semmle.label | C3 | +| test.cpp:205:9:205:28 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:206:9:206:28 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:209:9:209:37 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:212:10:212:29 | [...](...){...} | semmle.label | [...](...){...} | +| test.cpp:215:10:215:29 | [...](...){...} | semmle.label | [...](...){...} | #select -| test.cpp:36:13:36:33 | [...](...){...} | test.cpp:36:13:36:33 | [...](...){...} | test.cpp:36:8:36:10 | la3 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:36:29:36:29 | l1 | l1 | -| test.cpp:37:13:37:33 | [...](...){...} | test.cpp:37:13:37:33 | [...](...){...} | test.cpp:37:8:37:10 | la4 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:37:29:37:29 | l1 | l1 | -| test.cpp:40:13:40:42 | [...](...){...} | test.cpp:40:13:40:42 | [...](...){...} | test.cpp:40:8:40:10 | la7 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:40:38:40:38 | l2 | l2 | -| test.cpp:54:26:54:45 | [...](...){...} | test.cpp:54:26:54:45 | [...](...){...} | test.cpp:10:8:10:8 | l | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:54:41:54:41 | l1 | l1 | -| test.cpp:55:26:55:45 | [...](...){...} | test.cpp:55:26:55:45 | [...](...){...} | test.cpp:10:8:10:8 | l | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:55:41:55:41 | l1 | l1 | -| test.cpp:58:26:58:54 | [...](...){...} | test.cpp:58:26:58:54 | [...](...){...} | test.cpp:10:8:10:8 | l | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:58:50:58:50 | l2 | l2 | -| test.cpp:86:37:86:56 | [...](...){...} | test.cpp:86:37:86:56 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:86:52:86:52 | l1 | l1 | -| test.cpp:87:37:87:56 | [...](...){...} | test.cpp:87:37:87:56 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:87:52:87:52 | l1 | l1 | -| test.cpp:92:26:92:45 | [...](...){...} | test.cpp:92:26:92:45 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:92:41:92:41 | l1 | l1 | -| test.cpp:93:26:93:45 | [...](...){...} | test.cpp:93:26:93:45 | [...](...){...} | file:///home/runner/work/codeql-coding-standards/codeql-coding-standards/cpp/common/test/includes/standard-library/functional.h:93:17:93:41 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:93:41:93:41 | l1 | l1 | -| test.cpp:119:13:119:33 | [...](...){...} | test.cpp:119:13:119:33 | [...](...){...} | test.cpp:119:8:119:10 | la7 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:119:29:119:29 | l1 | l1 | -| test.cpp:120:13:120:33 | [...](...){...} | test.cpp:120:13:120:33 | [...](...){...} | test.cpp:120:8:120:10 | la8 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:120:29:120:29 | l1 | l1 | -| test.cpp:127:18:127:36 | [...](...){...} | test.cpp:127:18:127:36 | [...](...){...} | test.cpp:127:8:127:10 | lb2 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:127:33:127:33 | x | x | -| test.cpp:130:21:130:39 | [...](...){...} | test.cpp:130:21:130:39 | [...](...){...} | test.cpp:130:8:130:10 | lb4 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:130:36:130:36 | x | x | -| test.cpp:133:37:133:55 | [...](...){...} | test.cpp:133:37:133:55 | [...](...){...} | test.cpp:133:8:133:10 | lb6 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:133:52:133:52 | x | x | -| test.cpp:143:37:143:56 | [...](...){...} | test.cpp:143:37:143:56 | [...](...){...} | test.cpp:136:31:136:63 | function_outside_translation_unit | Lambda implicitly captures $@ but is not considered a transient lambda because it is passed to a different translation unit, resulting in obfuscated lifetimes. | test.cpp:143:52:143:52 | l1 | l1 | -| test.cpp:144:37:144:56 | [...](...){...} | test.cpp:144:37:144:56 | [...](...){...} | test.cpp:136:31:136:63 | function_outside_translation_unit | Lambda implicitly captures $@ but is not considered a transient lambda because it is passed to a different translation unit, resulting in obfuscated lifetimes. | test.cpp:144:52:144:52 | l1 | l1 | -| test.cpp:148:7:148:35 | [...](...){...} | test.cpp:148:7:148:35 | [...](...){...} | test.cpp:136:31:136:63 | function_outside_translation_unit | Lambda implicitly captures $@ but is not considered a transient lambda because it is passed to a different translation unit, resulting in obfuscated lifetimes. | test.cpp:148:31:148:31 | l2 | l2 | -| test.cpp:171:9:171:28 | [...](...){...} | test.cpp:171:9:171:28 | [...](...){...} | test.cpp:153:43:153:73 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:171:24:171:24 | l1 | l1 | -| test.cpp:172:9:172:28 | [...](...){...} | test.cpp:172:9:172:28 | [...](...){...} | test.cpp:153:43:153:73 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:172:24:172:24 | l1 | l1 | -| test.cpp:175:9:175:37 | [...](...){...} | test.cpp:175:9:175:37 | [...](...){...} | test.cpp:153:43:153:73 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:175:33:175:33 | l2 | l2 | -| test.cpp:178:10:178:29 | [...](...){...} | test.cpp:178:10:178:29 | [...](...){...} | test.cpp:153:43:153:73 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:178:25:178:25 | l1 | l1 | -| test.cpp:181:10:181:29 | [...](...){...} | test.cpp:181:10:181:29 | [...](...){...} | test.cpp:163:28:163:29 | C3 | Lambda implicitly captures $@ but is not considered a transient lambda because it is passed to a different translation unit, resulting in obfuscated lifetimes. | test.cpp:181:25:181:25 | l1 | l1 | +| test.cpp:70:13:70:33 | [...](...){...} | test.cpp:70:13:70:33 | [...](...){...} | test.cpp:70:8:70:10 | la3 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:70:29:70:29 | l1 | l1 | +| test.cpp:71:13:71:33 | [...](...){...} | test.cpp:71:13:71:33 | [...](...){...} | test.cpp:71:8:71:10 | la4 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:71:29:71:29 | l1 | l1 | +| test.cpp:74:13:74:42 | [...](...){...} | test.cpp:74:13:74:42 | [...](...){...} | test.cpp:74:8:74:10 | la7 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:74:38:74:38 | l2 | l2 | +| test.cpp:88:26:88:45 | [...](...){...} | test.cpp:88:26:88:45 | [...](...){...} | test.cpp:44:8:44:8 | l | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:88:41:88:41 | l1 | l1 | +| test.cpp:89:26:89:45 | [...](...){...} | test.cpp:89:26:89:45 | [...](...){...} | test.cpp:44:8:44:8 | l | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:89:41:89:41 | l1 | l1 | +| test.cpp:92:26:92:54 | [...](...){...} | test.cpp:92:26:92:54 | [...](...){...} | test.cpp:44:8:44:8 | l | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:92:50:92:50 | l2 | l2 | +| test.cpp:120:37:120:56 | [...](...){...} | test.cpp:120:37:120:56 | [...](...){...} | test.cpp:32:52:32:76 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:120:52:120:52 | l1 | l1 | +| test.cpp:121:37:121:56 | [...](...){...} | test.cpp:121:37:121:56 | [...](...){...} | test.cpp:32:52:32:76 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:121:52:121:52 | l1 | l1 | +| test.cpp:126:26:126:45 | [...](...){...} | test.cpp:126:26:126:45 | [...](...){...} | test.cpp:32:52:32:76 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:126:41:126:41 | l1 | l1 | +| test.cpp:127:26:127:45 | [...](...){...} | test.cpp:127:26:127:45 | [...](...){...} | test.cpp:32:52:32:76 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:127:41:127:41 | l1 | l1 | +| test.cpp:153:13:153:33 | [...](...){...} | test.cpp:153:13:153:33 | [...](...){...} | test.cpp:153:8:153:10 | la7 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:153:29:153:29 | l1 | l1 | +| test.cpp:154:13:154:33 | [...](...){...} | test.cpp:154:13:154:33 | [...](...){...} | test.cpp:154:8:154:10 | la8 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:154:29:154:29 | l1 | l1 | +| test.cpp:161:18:161:36 | [...](...){...} | test.cpp:161:18:161:36 | [...](...){...} | test.cpp:161:8:161:10 | lb2 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:161:33:161:33 | x | x | +| test.cpp:164:21:164:39 | [...](...){...} | test.cpp:164:21:164:39 | [...](...){...} | test.cpp:164:8:164:10 | lb4 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:164:36:164:36 | x | x | +| test.cpp:167:37:167:55 | [...](...){...} | test.cpp:167:37:167:55 | [...](...){...} | test.cpp:167:8:167:10 | lb6 | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:167:52:167:52 | x | x | +| test.cpp:177:37:177:56 | [...](...){...} | test.cpp:177:37:177:56 | [...](...){...} | test.cpp:170:31:170:63 | function_outside_translation_unit | Lambda implicitly captures $@ but is not considered a transient lambda because it is passed to a different translation unit, resulting in obfuscated lifetimes. | test.cpp:177:52:177:52 | l1 | l1 | +| test.cpp:178:37:178:56 | [...](...){...} | test.cpp:178:37:178:56 | [...](...){...} | test.cpp:170:31:170:63 | function_outside_translation_unit | Lambda implicitly captures $@ but is not considered a transient lambda because it is passed to a different translation unit, resulting in obfuscated lifetimes. | test.cpp:178:52:178:52 | l1 | l1 | +| test.cpp:182:7:182:35 | [...](...){...} | test.cpp:182:7:182:35 | [...](...){...} | test.cpp:170:31:170:63 | function_outside_translation_unit | Lambda implicitly captures $@ but is not considered a transient lambda because it is passed to a different translation unit, resulting in obfuscated lifetimes. | test.cpp:182:31:182:31 | l2 | l2 | +| test.cpp:205:9:205:28 | [...](...){...} | test.cpp:205:9:205:28 | [...](...){...} | test.cpp:187:43:187:73 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:205:24:205:24 | l1 | l1 | +| test.cpp:206:9:206:28 | [...](...){...} | test.cpp:206:9:206:28 | [...](...){...} | test.cpp:187:43:187:73 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:206:24:206:24 | l1 | l1 | +| test.cpp:209:9:209:37 | [...](...){...} | test.cpp:209:9:209:37 | [...](...){...} | test.cpp:187:43:187:73 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:209:33:209:33 | l2 | l2 | +| test.cpp:212:10:212:29 | [...](...){...} | test.cpp:212:10:212:29 | [...](...){...} | test.cpp:187:43:187:73 | new | Lambda implicitly captures $@ but is not considered a transient lambda because it is copied or moved, resulting in obfuscated lifetimes. | test.cpp:212:25:212:25 | l1 | l1 | +| test.cpp:215:10:215:29 | [...](...){...} | test.cpp:215:10:215:29 | [...](...){...} | test.cpp:197:28:197:29 | C3 | Lambda implicitly captures $@ but is not considered a transient lambda because it is passed to a different translation unit, resulting in obfuscated lifetimes. | test.cpp:215:25:215:25 | l1 | l1 | diff --git a/cpp/misra/test/rules/RULE-8-1-2/test.cpp b/cpp/misra/test/rules/RULE-8-1-2/test.cpp index 36ab47a62..77f187c09 100644 --- a/cpp/misra/test/rules/RULE-8-1-2/test.cpp +++ b/cpp/misra/test/rules/RULE-8-1-2/test.cpp @@ -1,4 +1,38 @@ -#include +#include + +/** + * Declare relevant parts of std utilities here, so that the resulting path + * problem nodes and edges are all local paths and don't refer to the actual + * standard library implementation. + * + * This approach reduces the burden of managing compiler compatibility results + * (since the exact names and source locations etc will vary between compilers + * and versions), and also fixes local vs CI/CD compatibility where absolute + * paths differ. + * + * However, note that does not fix all issues. Users still will have these + * absolute paths appear in their own results, which results in unviewable + * locations inside GitHub code scanning. However, the fix to this would likely + * require defining our own data modeling for where lambdas are stored in the + * standard library, which is not work we have yet performed. In the meantime, + * including these unviewable locations will hopefully still help users track + * the storage locations of their lambdas. + */ +namespace std { +template constexpr T &&forward(remove_reference_t &t) noexcept { + return static_cast(t); +} +template constexpr T &&forward(remove_reference_t &&t) noexcept { + return static_cast(t); +} +template class function; +template class function { +public: + function(); + template function(F &&f) { auto fptr = new F(std::forward(f)); } + template function &operator=(F &&); +}; +} // namespace std template void function_transient(Func f) { // transient, does not store. From 1dc9e5e6e4a6c860ba6631defb5478a47d4b2094 Mon Sep 17 00:00:00 2001 From: Mike Fairhurst Date: Tue, 24 Feb 2026 16:45:22 -0800 Subject: [PATCH 2/2] Update copilot review instructions --- .github/copilot-instructions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 662931e2a..64d87a533 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -55,5 +55,6 @@ When reviewing tests, it is critical to: - Check that there are no `.expected` rows that refer to test code cases marked as `COMPLIANT`, or with no comment - Note that it is OK if the locations of the comment are not precisely aligned with the alert - Check that the alert message and placeholders are accurate and understandable. +- Check that the locations do not refer to files in the standard library, as these have issues in GitHub's Code Scanning UI and complicate our compiler compatibility tests. - Consider the "test coverage" of the query, are each of its logical statements effectively exercised individually, collectively? The test should neither be overly bloated nor under specified. - Consider the edge cases of the language itself, will the analysis work in non-trivial cases, are all relevant language concepts tested here? This doesn't need to be exhaustive, but it should be thoughfully thorough.