diff --git a/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.cpp b/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.cpp new file mode 100644 index 00000000000..7da7472de8a --- /dev/null +++ b/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.cpp @@ -0,0 +1,35 @@ + +void do_something_with(bool b) +{ + // ... +} + +void do_something_else_with(int i) +{ + // ... +} + +void test_if(int x, int y) +{ + bool b = x < y; + do_something_with(b); + + if (bool c = x < y) { // ConditionalDeclExpr + do_something_with(c); + x++; + } +} + +void test_while(int x, int y) +{ + while (int d = x - y) { // ConditionalDeclExpr + do_something_else_with(d); + } +} + +void test_for(int x, int y) +{ + for (int i = 0; bool c = x < y; x++) { // ConditionalDeclExpr + do_something_with(c); + } +} diff --git a/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.expected b/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.expected new file mode 100644 index 00000000000..db4a3518c6e --- /dev/null +++ b/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.expected @@ -0,0 +1,3 @@ +| conditionaldeclexpr.cpp:17:7:17:20 | (condition decl) | conditionaldeclexpr.cpp:17:12:17:12 | c | conditionaldeclexpr.cpp:17:16:17:20 | ... < ... | +| conditionaldeclexpr.cpp:25:10:25:22 | (condition decl) | conditionaldeclexpr.cpp:25:14:25:14 | d | conditionaldeclexpr.cpp:25:18:25:22 | ... - ... | +| conditionaldeclexpr.cpp:32:19:32:32 | (condition decl) | conditionaldeclexpr.cpp:32:24:32:24 | c | conditionaldeclexpr.cpp:32:28:32:32 | ... < ... | diff --git a/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.ql b/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.ql new file mode 100644 index 00000000000..4010e925b2c --- /dev/null +++ b/cpp/ql/test/library-tests/exprs/conditional_decl/conditionaldeclexpr.ql @@ -0,0 +1,4 @@ +import cpp + +from ConditionDeclExpr cde +select cde, cde.getVariableAccess(), cde.getInitializingExpr()