mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
C++: Add IR inconsistency test
This commit is contained in:
@@ -4595,6 +4595,18 @@ ir.c:
|
||||
# 76| Value = [Literal] 0
|
||||
# 76| ValueCategory = prvalue
|
||||
# 78| getStmt(1): [ReturnStmt] return ...
|
||||
# 80| [TopLevelFunction] void raise_access_violation()
|
||||
# 80| <params>:
|
||||
# 80| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 81| getStmt(0): [ExprStmt] ExprStmt
|
||||
# 81| getExpr(): [FunctionCall] call to ExRaiseAccessViolation
|
||||
# 81| Type = [VoidType] void
|
||||
# 81| ValueCategory = prvalue
|
||||
# 81| getArgument(0): [Literal] 1
|
||||
# 81| Type = [IntType] int
|
||||
# 81| Value = [Literal] 1
|
||||
# 81| ValueCategory = prvalue
|
||||
# 82| getStmt(1): [ReturnStmt] return ...
|
||||
ir.cpp:
|
||||
# 1| [TopLevelFunction] void Constants()
|
||||
# 1| <params>:
|
||||
|
||||
@@ -3250,6 +3250,18 @@ ir.c:
|
||||
# 73| m73_4(unknown) = ^CallSideEffect : ~m70_4
|
||||
# 73| m73_5(unknown) = Chi : total:m70_4, partial:m73_4
|
||||
|
||||
# 80| void raise_access_violation()
|
||||
# 80| Block 0
|
||||
# 80| v80_1(void) = EnterFunction :
|
||||
# 80| m80_2(unknown) = AliasedDefinition :
|
||||
# 80| m80_3(unknown) = InitializeNonLocal :
|
||||
# 80| m80_4(unknown) = Chi : total:m80_2, partial:m80_3
|
||||
# 81| r81_1(glval<unknown>) = FunctionAddress[ExRaiseAccessViolation] :
|
||||
# 81| r81_2(int) = Constant[1] :
|
||||
# 81| v81_3(void) = Call[ExRaiseAccessViolation] : func:r81_1, 0:r81_2
|
||||
# 81| m81_4(unknown) = ^CallSideEffect : ~m80_4
|
||||
# 81| m81_5(unknown) = Chi : total:m80_4, partial:m81_4
|
||||
|
||||
ir.cpp:
|
||||
# 1| void Constants()
|
||||
# 1| Block 0
|
||||
|
||||
@@ -8,6 +8,7 @@ sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| 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() |
|
||||
| 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() |
|
||||
| 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() |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
| 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() |
|
||||
|
||||
@@ -8,6 +8,7 @@ sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| 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() |
|
||||
| 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() |
|
||||
| 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() |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
| 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() |
|
||||
|
||||
@@ -77,4 +77,8 @@ void throw_in_try_with_throw_in_finally()
|
||||
}
|
||||
}
|
||||
|
||||
void raise_access_violation() {
|
||||
ExRaiseAccessViolation(1);
|
||||
}
|
||||
|
||||
// semmle-extractor-options: --microsoft
|
||||
|
||||
@@ -9,6 +9,7 @@ instructionWithoutSuccessor
|
||||
| ir.c:62:5:62:26 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: 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() |
|
||||
| ir.c:73:5:73:26 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: 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() |
|
||||
| ir.c:76:5:76:26 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: 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() |
|
||||
| ir.c:81:3:81:24 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:80:6:80:27 | void raise_access_violation() | void raise_access_violation() |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
| 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() |
|
||||
|
||||
@@ -3035,6 +3035,22 @@ ir.c:
|
||||
# 70| v70_5(void) = AliasedUse : ~m?
|
||||
# 70| v70_6(void) = ExitFunction :
|
||||
|
||||
# 80| void raise_access_violation()
|
||||
# 80| Block 0
|
||||
# 80| v80_1(void) = EnterFunction :
|
||||
# 80| mu80_2(unknown) = AliasedDefinition :
|
||||
# 80| mu80_3(unknown) = InitializeNonLocal :
|
||||
# 81| r81_1(glval<unknown>) = FunctionAddress[ExRaiseAccessViolation] :
|
||||
# 81| r81_2(int) = Constant[1] :
|
||||
# 81| v81_3(void) = Call[ExRaiseAccessViolation] : func:r81_1, 0:r81_2
|
||||
# 81| mu81_4(unknown) = ^CallSideEffect : ~m?
|
||||
|
||||
# 82| Block 1
|
||||
# 82| v82_1(void) = NoOp :
|
||||
# 80| v80_4(void) = ReturnVoid :
|
||||
# 80| v80_5(void) = AliasedUse : ~m?
|
||||
# 80| v80_6(void) = ExitFunction :
|
||||
|
||||
ir.cpp:
|
||||
# 1| void Constants()
|
||||
# 1| Block 0
|
||||
|
||||
@@ -8,6 +8,7 @@ sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.c:62:5:62:26 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: 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() |
|
||||
| ir.c:73:5:73:26 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: 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() |
|
||||
| ir.c:81:3:81:24 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:80:6:80:27 | void raise_access_violation() | void raise_access_violation() |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
| 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() |
|
||||
|
||||
@@ -8,6 +8,7 @@ sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.c:62:5:62:26 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: 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() |
|
||||
| ir.c:73:5:73:26 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: 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() |
|
||||
| ir.c:81:3:81:24 | CallSideEffect: call to ExRaiseAccessViolation | Instruction 'CallSideEffect: call to ExRaiseAccessViolation' has no successors in function '$@'. | ir.c:80:6:80:27 | void raise_access_violation() | void raise_access_violation() |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
| 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() |
|
||||
|
||||
Reference in New Issue
Block a user