Skip to content

Commit 6e75b96

Browse files
jketemaCopilot
andcommitted
Add maybe_unused regression tests for unused-variable queries
Cover C++17 maybe_unused local and static variables in the unused-variable query tests. Record the current alerts as spurious so the regression cases pass until the queries account for the standard attribute. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 748b492 commit 6e75b96

4 files changed

Lines changed: 9 additions & 1 deletion

File tree

‎cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/UnusedLocals.expected‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
| code2.cpp:64:7:64:8 | v3 | Variable v3 is not used. |
77
| code2.cpp:108:11:108:12 | v2 | Variable v2 is not used. |
88
| code2.cpp:128:9:128:9 | b | Variable b is not used. |
9+
| code2.cpp:182:23:182:28 | unused | Variable unused is not used. |
910
| code.c:10:18:10:18 | y | Variable y is not used. |
1011
| code.c:11:18:11:18 | z | Variable z is not used. |
1112
| code.c:18:7:18:7 | x | Variable x is not used. |

‎cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/code2.cpp‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,3 +176,8 @@ void test_switch_initializer()
176176
// ...
177177
}
178178
}
179+
180+
void test_maybe_unused()
181+
{
182+
[[maybe_unused]] int unused; // $ SPURIOUS: Alert // GOOD: false positive for maybe_unused
183+
}

‎cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedStaticVariables/UnusedStaticVariables.expected‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
| test.cpp:8:12:8:21 | staticVar6 | Static variable staticVar6 is never read. |
33
| test.cpp:10:11:10:19 | constVar8 | Static variable constVar8 is never read. |
44
| test.cpp:12:12:12:22 | staticVar10 | Static variable staticVar10 is never read. |
5+
| test.cpp:13:29:13:39 | staticVar11 | Static variable staticVar11 is never read. |

‎cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedStaticVariables/test.cpp‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1+
// semmle-extractor-options: -std=c++17
22
int globalVar; // GOOD (not static)
33
static int staticVar1; // GOOD (used)
44
static int staticVar2; // GOOD (used)
@@ -10,6 +10,7 @@ static __attribute__((__unused__)) int staticVar7; // GOOD (unused but this is e
1010
const int constVar8 = 8; // $ Alert // BAD (const defaults to static)
1111
extern const int constVar9 = 9; // GOOD
1212
static int staticVar10 = 10; // $ SPURIOUS: Alert // GOOD [FALSE POSITIVE] (referenced in a never instantiated template)
13+
[[maybe_unused]] static int staticVar11; // $ SPURIOUS: Alert // GOOD (false positive for maybe_unused)
1314

1415
void f()
1516
{

0 commit comments

Comments
 (0)