diff --git a/cpp/ql/test/query-tests/Best Practices/Likely Errors/EmptyBlock/EmptyBlock.expected b/cpp/ql/test/query-tests/Best Practices/Likely Errors/EmptyBlock/EmptyBlock.expected index dc572fae9bef..d6d9c209c79a 100644 --- a/cpp/ql/test/query-tests/Best Practices/Likely Errors/EmptyBlock/EmptyBlock.expected +++ b/cpp/ql/test/query-tests/Best Practices/Likely Errors/EmptyBlock/EmptyBlock.expected @@ -1,3 +1,7 @@ | empty_block.cpp:9:10:9:11 | { ... } | Empty block without comment. | | empty_block.cpp:12:10:13:3 | { ... } | Empty block without comment. | | empty_block.cpp:20:10:21:3 | { ... } | Empty block without comment. | +| empty_block.cpp:84:14:85:3 | { ... } | Empty block without comment. | +| empty_block.cpp:93:10:94:3 | { ... } | Empty block without comment. | +| empty_block.cpp:99:10:100:3 | { ... } | Empty block without comment. | +| empty_block.cpp:100:10:101:3 | { ... } | Empty block without comment. | diff --git a/cpp/ql/test/query-tests/Best Practices/Likely Errors/EmptyBlock/empty_block.cpp b/cpp/ql/test/query-tests/Best Practices/Likely Errors/EmptyBlock/empty_block.cpp index 8a8714d310f4..905b873c670d 100644 --- a/cpp/ql/test/query-tests/Best Practices/Likely Errors/EmptyBlock/empty_block.cpp +++ b/cpp/ql/test/query-tests/Best Practices/Likely Errors/EmptyBlock/empty_block.cpp @@ -80,5 +80,25 @@ int f(int x) { } } + // BAD + if (x > 1) { + } + + // GOOD + if (x) { + ++x; + } + + // DUBIOUS (reported) + if (x) { + } else { + ++x; + } + + // BAD (x2) + if (x) { + } else { + } + return 1; } diff --git a/cpp/ql/test/query-tests/Likely Bugs/Arithmetic/PointlessComparison/PointlessComparison.cpp b/cpp/ql/test/query-tests/Likely Bugs/Arithmetic/PointlessComparison/PointlessComparison.cpp index d6462ea2b991..461a1a2131ce 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Arithmetic/PointlessComparison/PointlessComparison.cpp +++ b/cpp/ql/test/query-tests/Likely Bugs/Arithmetic/PointlessComparison/PointlessComparison.cpp @@ -43,3 +43,9 @@ int extreme_values(void) if (y >> 1 >= 0x7FFFFFFFFFFF) {} // $ Alert[cpp/constant-comparison] // always true if (y >> 1 >= 0xFFFFFFFFFFF) {} // $ Alert[cpp/constant-comparison] // always true } + +// Test for overlap between PointlessComparison and PointlessSelfComparison +// (PointlessComparison should *not* report this) +bool selfCmp1(int x) { + return (x == (int)x); +} diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.cpp b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.cpp new file mode 100644 index 000000000000..1635300ac9a9 --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.cpp @@ -0,0 +1,19 @@ +void emptyIfs(int value) { + if (value) {} // $ Alert[cpp/empty-if] + + if (value > 1) { + } // $ Alert[cpp/empty-if] + + if (value) { // GOOD + ++value; + } + + if (value) { // GOOD + } else { + ++value; + } + + if (value) { // $ MISSING: Alert[cpp/empty-if] + } else { + } +} diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.expected b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.expected new file mode 100644 index 000000000000..136258f326a2 --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.expected @@ -0,0 +1,2 @@ +| FutileConditional.cpp:2:3:2:15 | if (...) ... | If-statement with an empty then-branch and no else-branch. | +| FutileConditional.cpp:4:3:5:3 | if (...) ... | If-statement with an empty then-branch and no else-branch. | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.qlref b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.qlref new file mode 100644 index 000000000000..a64e5b47b5bf --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/FutileConditional/FutileConditional.qlref @@ -0,0 +1,2 @@ +query: Likely Bugs/Likely Typos/FutileConditional.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql