Skip to content

Commit 26b9de3

Browse files
author
Paolo Tranquilli
committed
Merge branch 'main' into rust-experiment
2 parents ef06b55 + 90f7b30 commit 26b9de3

10 files changed

+55678
-58435
lines changed

cpp/ql/test/library-tests/ir/ir/PrintAST.expected

Lines changed: 24695 additions & 24589 deletions
Large diffs are not rendered by default.

cpp/ql/test/library-tests/ir/ir/aliased_ir.expected

Lines changed: 15445 additions & 15386 deletions
Large diffs are not rendered by default.

cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ missingOperandType
66
duplicateChiOperand
77
sideEffectWithoutPrimary
88
instructionWithoutSuccessor
9+
| ir.c:62:5:62:26 | Chi: call to ExRaiseAccessViolation | Instruction 'Chi: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:57:6:57:30 | void throw_in_try_with_finally() | void throw_in_try_with_finally() |
10+
| ir.c:73:5:73:26 | Chi: call to ExRaiseAccessViolation | Instruction 'Chi: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:70:6:70:39 | void throw_in_try_with_throw_in_finally() | void throw_in_try_with_throw_in_finally() |
11+
| ir.c:81:3:81:24 | Chi: call to ExRaiseAccessViolation | Instruction 'Chi: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:80:6:80:27 | void raise_access_violation() | void raise_access_violation() |
912
ambiguousSuccessors
1013
unexplainedLoop
1114
| ir.c:38:13:38:37 | Constant: 1 | Instruction 'Constant: 1' is part of an unexplained loop in function '$@'. | ir.c:32:6:32:32 | void unexplained_loop_regression() | void unexplained_loop_regression() |

cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ missingOperandType
66
duplicateChiOperand
77
sideEffectWithoutPrimary
88
instructionWithoutSuccessor
9+
| ir.c:62:5:62:26 | Chi: call to ExRaiseAccessViolation | Instruction 'Chi: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:57:6:57:30 | void throw_in_try_with_finally() | void throw_in_try_with_finally() |
10+
| ir.c:73:5:73:26 | Chi: call to ExRaiseAccessViolation | Instruction 'Chi: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:70:6:70:39 | void throw_in_try_with_throw_in_finally() | void throw_in_try_with_throw_in_finally() |
11+
| ir.c:81:3:81:24 | Chi: call to ExRaiseAccessViolation | Instruction 'Chi: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:80:6:80:27 | void raise_access_violation() | void raise_access_violation() |
912
ambiguousSuccessors
1013
unexplainedLoop
1114
| ir.c:38:13:38:37 | Constant: 1 | Instruction 'Constant: 1' is part of an unexplained loop in function '$@'. | ir.c:32:6:32:32 | void unexplained_loop_regression() | void unexplained_loop_regression() |

cpp/ql/test/library-tests/ir/ir/ir.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,44 @@ void unexplained_loop_regression()
4141
}
4242
}
4343

44+
void try_with_finally()
45+
{
46+
int x = 0;
47+
__try
48+
{
49+
x = 1;
50+
}
51+
__finally
52+
{
53+
x = 2;
54+
}
55+
}
56+
57+
void throw_in_try_with_finally()
58+
{
59+
int x = 0;
60+
__try
61+
{
62+
ExRaiseAccessViolation(0);
63+
}
64+
__finally
65+
{
66+
x = 1;
67+
}
68+
}
69+
70+
void throw_in_try_with_throw_in_finally()
71+
{
72+
__try {
73+
ExRaiseAccessViolation(0);
74+
}
75+
__finally {
76+
ExRaiseAccessViolation(0);
77+
}
78+
}
79+
80+
void raise_access_violation() {
81+
ExRaiseAccessViolation(1);
82+
}
83+
4484
// semmle-extractor-options: --microsoft

0 commit comments

Comments
 (0)