C++: Add some more tests to expose consistency issues.

This commit is contained in:
Mathias Vorreiter Pedersen
2024-11-18 15:25:57 +00:00
parent 493ea6da31
commit 28391d19b6
10 changed files with 1884 additions and 0 deletions

View File

@@ -4607,6 +4607,188 @@ ir.c:
# 81| Value = [Literal] 1
# 81| ValueCategory = prvalue
# 82| getStmt(1): [ReturnStmt] return ...
# 84| [TopLevelFunction] void branch_on_integral_in_c(int, int)
# 84| <params>:
# 84| getParameter(0): [Parameter] x1
# 84| Type = [IntType] int
# 84| getParameter(1): [Parameter] x2
# 84| Type = [IntType] int
# 84| getEntryPoint(): [BlockStmt] { ... }
# 85| getStmt(0): [IfStmt] if (...) ...
# 85| getCondition(): [VariableAccess] x1
# 85| Type = [IntType] int
# 85| ValueCategory = prvalue(load)
# 85| getThen(): [BlockStmt] { ... }
# 86| getStmt(1): [IfStmt] if (...) ...
# 86| getCondition(): [NotExpr] ! ...
# 86| Type = [IntType] int
# 86| ValueCategory = prvalue
# 86| getOperand(): [VariableAccess] x1
# 86| Type = [IntType] int
# 86| ValueCategory = prvalue(load)
# 86| getThen(): [BlockStmt] { ... }
# 88| getStmt(2): [DeclStmt] declaration
# 88| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 88| Type = [IntType] int
# 88| getVariable().getInitializer(): [Initializer] initializer for y
# 88| getExpr(): [NotExpr] ! ...
# 88| Type = [IntType] int
# 88| ValueCategory = prvalue
# 88| getOperand(): [VariableAccess] x1
# 88| Type = [IntType] int
# 88| ValueCategory = prvalue(load)
# 89| getStmt(3): [IfStmt] if (...) ...
# 89| getCondition(): [VariableAccess] y
# 89| Type = [IntType] int
# 89| ValueCategory = prvalue(load)
# 89| getThen(): [BlockStmt] { ... }
# 90| getStmt(4): [IfStmt] if (...) ...
# 90| getCondition(): [NotExpr] ! ...
# 90| Type = [IntType] int
# 90| ValueCategory = prvalue
# 90| getOperand(): [VariableAccess] y
# 90| Type = [IntType] int
# 90| ValueCategory = prvalue(load)
# 90| getThen(): [BlockStmt] { ... }
# 92| getStmt(5): [IfStmt] if (...) ...
# 92| getCondition(): [LogicalAndExpr] ... && ...
# 92| Type = [IntType] int
# 92| ValueCategory = prvalue
# 92| getLeftOperand(): [VariableAccess] x1
# 92| Type = [IntType] int
# 92| ValueCategory = prvalue(load)
# 92| getRightOperand(): [VariableAccess] x2
# 92| Type = [IntType] int
# 92| ValueCategory = prvalue(load)
# 92| getThen(): [BlockStmt] { ... }
# 93| getStmt(6): [IfStmt] if (...) ...
# 93| getCondition(): [LogicalAndExpr] ... && ...
# 93| Type = [IntType] int
# 93| ValueCategory = prvalue
# 93| getLeftOperand(): [NotExpr] ! ...
# 93| Type = [IntType] int
# 93| ValueCategory = prvalue
# 93| getOperand(): [VariableAccess] x1
# 93| Type = [IntType] int
# 93| ValueCategory = prvalue(load)
# 93| getRightOperand(): [VariableAccess] x2
# 93| Type = [IntType] int
# 93| ValueCategory = prvalue(load)
# 93| getThen(): [BlockStmt] { ... }
# 94| getStmt(7): [IfStmt] if (...) ...
# 94| getCondition(): [LogicalAndExpr] ... && ...
# 94| Type = [IntType] int
# 94| ValueCategory = prvalue
# 94| getLeftOperand(): [VariableAccess] x1
# 94| Type = [IntType] int
# 94| ValueCategory = prvalue(load)
# 94| getRightOperand(): [NotExpr] ! ...
# 94| Type = [IntType] int
# 94| ValueCategory = prvalue
# 94| getOperand(): [VariableAccess] x2
# 94| Type = [IntType] int
# 94| ValueCategory = prvalue(load)
# 94| getThen(): [BlockStmt] { ... }
# 95| getStmt(8): [IfStmt] if (...) ...
# 95| getCondition(): [LogicalAndExpr] ... && ...
# 95| Type = [IntType] int
# 95| ValueCategory = prvalue
# 95| getLeftOperand(): [NotExpr] ! ...
# 95| Type = [IntType] int
# 95| ValueCategory = prvalue
# 95| getOperand(): [VariableAccess] x1
# 95| Type = [IntType] int
# 95| ValueCategory = prvalue(load)
# 95| getRightOperand(): [NotExpr] ! ...
# 95| Type = [IntType] int
# 95| ValueCategory = prvalue
# 95| getOperand(): [VariableAccess] x2
# 95| Type = [IntType] int
# 95| ValueCategory = prvalue(load)
# 95| getThen(): [BlockStmt] { ... }
# 96| getStmt(9): [IfStmt] if (...) ...
# 96| getCondition(): [LogicalOrExpr] ... || ...
# 96| Type = [IntType] int
# 96| ValueCategory = prvalue
# 96| getLeftOperand(): [VariableAccess] x1
# 96| Type = [IntType] int
# 96| ValueCategory = prvalue(load)
# 96| getRightOperand(): [VariableAccess] x2
# 96| Type = [IntType] int
# 96| ValueCategory = prvalue(load)
# 96| getThen(): [BlockStmt] { ... }
# 97| getStmt(10): [IfStmt] if (...) ...
# 97| getCondition(): [LogicalOrExpr] ... || ...
# 97| Type = [IntType] int
# 97| ValueCategory = prvalue
# 97| getLeftOperand(): [NotExpr] ! ...
# 97| Type = [IntType] int
# 97| ValueCategory = prvalue
# 97| getOperand(): [VariableAccess] x1
# 97| Type = [IntType] int
# 97| ValueCategory = prvalue(load)
# 97| getRightOperand(): [VariableAccess] x2
# 97| Type = [IntType] int
# 97| ValueCategory = prvalue(load)
# 97| getThen(): [BlockStmt] { ... }
# 98| getStmt(11): [IfStmt] if (...) ...
# 98| getCondition(): [LogicalOrExpr] ... || ...
# 98| Type = [IntType] int
# 98| ValueCategory = prvalue
# 98| getLeftOperand(): [VariableAccess] x1
# 98| Type = [IntType] int
# 98| ValueCategory = prvalue(load)
# 98| getRightOperand(): [NotExpr] ! ...
# 98| Type = [IntType] int
# 98| ValueCategory = prvalue
# 98| getOperand(): [VariableAccess] x2
# 98| Type = [IntType] int
# 98| ValueCategory = prvalue(load)
# 98| getThen(): [BlockStmt] { ... }
# 99| getStmt(12): [IfStmt] if (...) ...
# 99| getCondition(): [LogicalOrExpr] ... || ...
# 99| Type = [IntType] int
# 99| ValueCategory = prvalue
# 99| getLeftOperand(): [NotExpr] ! ...
# 99| Type = [IntType] int
# 99| ValueCategory = prvalue
# 99| getOperand(): [VariableAccess] x1
# 99| Type = [IntType] int
# 99| ValueCategory = prvalue(load)
# 99| getRightOperand(): [NotExpr] ! ...
# 99| Type = [IntType] int
# 99| ValueCategory = prvalue
# 99| getOperand(): [VariableAccess] x2
# 99| Type = [IntType] int
# 99| ValueCategory = prvalue(load)
# 99| getThen(): [BlockStmt] { ... }
# 101| getStmt(13): [DeclStmt] declaration
# 101| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x_1_and_2
# 101| Type = [IntType] int
# 101| getVariable().getInitializer(): [Initializer] initializer for x_1_and_2
# 101| getExpr(): [LogicalAndExpr] ... && ...
# 101| Type = [IntType] int
# 101| ValueCategory = prvalue
# 101| getLeftOperand(): [VariableAccess] x1
# 101| Type = [IntType] int
# 101| ValueCategory = prvalue(load)
# 101| getRightOperand(): [VariableAccess] x2
# 101| Type = [IntType] int
# 101| ValueCategory = prvalue(load)
# 102| getStmt(14): [IfStmt] if (...) ...
# 102| getCondition(): [VariableAccess] x_1_and_2
# 102| Type = [IntType] int
# 102| ValueCategory = prvalue(load)
# 102| getThen(): [BlockStmt] { ... }
# 103| getStmt(15): [IfStmt] if (...) ...
# 103| getCondition(): [NotExpr] ! ...
# 103| Type = [IntType] int
# 103| ValueCategory = prvalue
# 103| getOperand(): [VariableAccess] x_1_and_2
# 103| Type = [IntType] int
# 103| ValueCategory = prvalue(load)
# 103| getThen(): [BlockStmt] { ... }
# 104| getStmt(16): [ReturnStmt] return ...
ir.cpp:
# 1| [TopLevelFunction] void Constants()
# 1| <params>:
@@ -23614,6 +23796,296 @@ ir.cpp:
# 2693| getExpr(): [VariableAccess] y
# 2693| Type = [IntType] int
# 2693| ValueCategory = prvalue(load)
# 2698| [TopLevelFunction] void branch_on_integral_in_cpp(int, int)
# 2698| <params>:
# 2698| getParameter(0): [Parameter] x1
# 2698| Type = [IntType] int
# 2698| getParameter(1): [Parameter] x2
# 2698| Type = [IntType] int
# 2698| getEntryPoint(): [BlockStmt] { ... }
# 2699| getStmt(0): [IfStmt] if (...) ...
# 2699| getCondition(): [VariableAccess] x1
# 2699| Type = [IntType] int
# 2699| ValueCategory = prvalue(load)
# 2699| getThen(): [BlockStmt] { ... }
# 2699| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 2699| Conversion = [BoolConversion] conversion to bool
# 2699| Type = [BoolType] bool
# 2699| ValueCategory = prvalue
# 2700| getStmt(1): [IfStmt] if (...) ...
# 2700| getCondition(): [NotExpr] ! ...
# 2700| Type = [BoolType] bool
# 2700| ValueCategory = prvalue
# 2700| getOperand(): [VariableAccess] x1
# 2700| Type = [IntType] int
# 2700| ValueCategory = prvalue(load)
# 2700| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2700| Conversion = [BoolConversion] conversion to bool
# 2700| Type = [BoolType] bool
# 2700| ValueCategory = prvalue
# 2700| getThen(): [BlockStmt] { ... }
# 2702| getStmt(2): [DeclStmt] declaration
# 2702| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 2702| Type = [IntType] int
# 2702| getVariable().getInitializer(): [Initializer] initializer for y
# 2702| getExpr(): [NotExpr] ! ...
# 2702| Type = [BoolType] bool
# 2702| ValueCategory = prvalue
# 2702| getOperand(): [VariableAccess] x1
# 2702| Type = [IntType] int
# 2702| ValueCategory = prvalue(load)
# 2702| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2702| Conversion = [BoolConversion] conversion to bool
# 2702| Type = [BoolType] bool
# 2702| ValueCategory = prvalue
# 2702| getExpr().getFullyConverted(): [CStyleCast] (int)...
# 2702| Conversion = [IntegralConversion] integral conversion
# 2702| Type = [IntType] int
# 2702| ValueCategory = prvalue
# 2703| getStmt(3): [IfStmt] if (...) ...
# 2703| getCondition(): [VariableAccess] y
# 2703| Type = [IntType] int
# 2703| ValueCategory = prvalue(load)
# 2703| getThen(): [BlockStmt] { ... }
# 2703| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 2703| Conversion = [BoolConversion] conversion to bool
# 2703| Type = [BoolType] bool
# 2703| ValueCategory = prvalue
# 2704| getStmt(4): [IfStmt] if (...) ...
# 2704| getCondition(): [NotExpr] ! ...
# 2704| Type = [BoolType] bool
# 2704| ValueCategory = prvalue
# 2704| getOperand(): [VariableAccess] y
# 2704| Type = [IntType] int
# 2704| ValueCategory = prvalue(load)
# 2704| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2704| Conversion = [BoolConversion] conversion to bool
# 2704| Type = [BoolType] bool
# 2704| ValueCategory = prvalue
# 2704| getThen(): [BlockStmt] { ... }
# 2706| getStmt(5): [IfStmt] if (...) ...
# 2706| getCondition(): [LogicalAndExpr] ... && ...
# 2706| Type = [BoolType] bool
# 2706| ValueCategory = prvalue
# 2706| getLeftOperand(): [VariableAccess] x1
# 2706| Type = [IntType] int
# 2706| ValueCategory = prvalue(load)
# 2706| getRightOperand(): [VariableAccess] x2
# 2706| Type = [IntType] int
# 2706| ValueCategory = prvalue(load)
# 2706| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2706| Conversion = [BoolConversion] conversion to bool
# 2706| Type = [BoolType] bool
# 2706| ValueCategory = prvalue
# 2706| getRightOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2706| Conversion = [BoolConversion] conversion to bool
# 2706| Type = [BoolType] bool
# 2706| ValueCategory = prvalue
# 2706| getThen(): [BlockStmt] { ... }
# 2707| getStmt(6): [IfStmt] if (...) ...
# 2707| getCondition(): [LogicalAndExpr] ... && ...
# 2707| Type = [BoolType] bool
# 2707| ValueCategory = prvalue
# 2707| getLeftOperand(): [NotExpr] ! ...
# 2707| Type = [BoolType] bool
# 2707| ValueCategory = prvalue
# 2707| getOperand(): [VariableAccess] x1
# 2707| Type = [IntType] int
# 2707| ValueCategory = prvalue(load)
# 2707| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2707| Conversion = [BoolConversion] conversion to bool
# 2707| Type = [BoolType] bool
# 2707| ValueCategory = prvalue
# 2707| getRightOperand(): [VariableAccess] x2
# 2707| Type = [IntType] int
# 2707| ValueCategory = prvalue(load)
# 2707| getRightOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2707| Conversion = [BoolConversion] conversion to bool
# 2707| Type = [BoolType] bool
# 2707| ValueCategory = prvalue
# 2707| getThen(): [BlockStmt] { ... }
# 2708| getStmt(7): [IfStmt] if (...) ...
# 2708| getCondition(): [LogicalAndExpr] ... && ...
# 2708| Type = [BoolType] bool
# 2708| ValueCategory = prvalue
# 2708| getLeftOperand(): [VariableAccess] x1
# 2708| Type = [IntType] int
# 2708| ValueCategory = prvalue(load)
# 2708| getRightOperand(): [NotExpr] ! ...
# 2708| Type = [BoolType] bool
# 2708| ValueCategory = prvalue
# 2708| getOperand(): [VariableAccess] x2
# 2708| Type = [IntType] int
# 2708| ValueCategory = prvalue(load)
# 2708| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2708| Conversion = [BoolConversion] conversion to bool
# 2708| Type = [BoolType] bool
# 2708| ValueCategory = prvalue
# 2708| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2708| Conversion = [BoolConversion] conversion to bool
# 2708| Type = [BoolType] bool
# 2708| ValueCategory = prvalue
# 2708| getThen(): [BlockStmt] { ... }
# 2709| getStmt(8): [IfStmt] if (...) ...
# 2709| getCondition(): [LogicalAndExpr] ... && ...
# 2709| Type = [BoolType] bool
# 2709| ValueCategory = prvalue
# 2709| getLeftOperand(): [NotExpr] ! ...
# 2709| Type = [BoolType] bool
# 2709| ValueCategory = prvalue
# 2709| getOperand(): [VariableAccess] x1
# 2709| Type = [IntType] int
# 2709| ValueCategory = prvalue(load)
# 2709| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2709| Conversion = [BoolConversion] conversion to bool
# 2709| Type = [BoolType] bool
# 2709| ValueCategory = prvalue
# 2709| getRightOperand(): [NotExpr] ! ...
# 2709| Type = [BoolType] bool
# 2709| ValueCategory = prvalue
# 2709| getOperand(): [VariableAccess] x2
# 2709| Type = [IntType] int
# 2709| ValueCategory = prvalue(load)
# 2709| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2709| Conversion = [BoolConversion] conversion to bool
# 2709| Type = [BoolType] bool
# 2709| ValueCategory = prvalue
# 2709| getThen(): [BlockStmt] { ... }
# 2710| getStmt(9): [IfStmt] if (...) ...
# 2710| getCondition(): [LogicalOrExpr] ... || ...
# 2710| Type = [BoolType] bool
# 2710| ValueCategory = prvalue
# 2710| getLeftOperand(): [VariableAccess] x1
# 2710| Type = [IntType] int
# 2710| ValueCategory = prvalue(load)
# 2710| getRightOperand(): [VariableAccess] x2
# 2710| Type = [IntType] int
# 2710| ValueCategory = prvalue(load)
# 2710| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2710| Conversion = [BoolConversion] conversion to bool
# 2710| Type = [BoolType] bool
# 2710| ValueCategory = prvalue
# 2710| getRightOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2710| Conversion = [BoolConversion] conversion to bool
# 2710| Type = [BoolType] bool
# 2710| ValueCategory = prvalue
# 2710| getThen(): [BlockStmt] { ... }
# 2711| getStmt(10): [IfStmt] if (...) ...
# 2711| getCondition(): [LogicalOrExpr] ... || ...
# 2711| Type = [BoolType] bool
# 2711| ValueCategory = prvalue
# 2711| getLeftOperand(): [NotExpr] ! ...
# 2711| Type = [BoolType] bool
# 2711| ValueCategory = prvalue
# 2711| getOperand(): [VariableAccess] x1
# 2711| Type = [IntType] int
# 2711| ValueCategory = prvalue(load)
# 2711| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2711| Conversion = [BoolConversion] conversion to bool
# 2711| Type = [BoolType] bool
# 2711| ValueCategory = prvalue
# 2711| getRightOperand(): [VariableAccess] x2
# 2711| Type = [IntType] int
# 2711| ValueCategory = prvalue(load)
# 2711| getRightOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2711| Conversion = [BoolConversion] conversion to bool
# 2711| Type = [BoolType] bool
# 2711| ValueCategory = prvalue
# 2711| getThen(): [BlockStmt] { ... }
# 2712| getStmt(11): [IfStmt] if (...) ...
# 2712| getCondition(): [LogicalOrExpr] ... || ...
# 2712| Type = [BoolType] bool
# 2712| ValueCategory = prvalue
# 2712| getLeftOperand(): [VariableAccess] x1
# 2712| Type = [IntType] int
# 2712| ValueCategory = prvalue(load)
# 2712| getRightOperand(): [NotExpr] ! ...
# 2712| Type = [BoolType] bool
# 2712| ValueCategory = prvalue
# 2712| getOperand(): [VariableAccess] x2
# 2712| Type = [IntType] int
# 2712| ValueCategory = prvalue(load)
# 2712| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2712| Conversion = [BoolConversion] conversion to bool
# 2712| Type = [BoolType] bool
# 2712| ValueCategory = prvalue
# 2712| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2712| Conversion = [BoolConversion] conversion to bool
# 2712| Type = [BoolType] bool
# 2712| ValueCategory = prvalue
# 2712| getThen(): [BlockStmt] { ... }
# 2713| getStmt(12): [IfStmt] if (...) ...
# 2713| getCondition(): [LogicalOrExpr] ... || ...
# 2713| Type = [BoolType] bool
# 2713| ValueCategory = prvalue
# 2713| getLeftOperand(): [NotExpr] ! ...
# 2713| Type = [BoolType] bool
# 2713| ValueCategory = prvalue
# 2713| getOperand(): [VariableAccess] x1
# 2713| Type = [IntType] int
# 2713| ValueCategory = prvalue(load)
# 2713| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2713| Conversion = [BoolConversion] conversion to bool
# 2713| Type = [BoolType] bool
# 2713| ValueCategory = prvalue
# 2713| getRightOperand(): [NotExpr] ! ...
# 2713| Type = [BoolType] bool
# 2713| ValueCategory = prvalue
# 2713| getOperand(): [VariableAccess] x2
# 2713| Type = [IntType] int
# 2713| ValueCategory = prvalue(load)
# 2713| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2713| Conversion = [BoolConversion] conversion to bool
# 2713| Type = [BoolType] bool
# 2713| ValueCategory = prvalue
# 2713| getThen(): [BlockStmt] { ... }
# 2715| getStmt(13): [DeclStmt] declaration
# 2715| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x_1_and_2
# 2715| Type = [IntType] int
# 2715| getVariable().getInitializer(): [Initializer] initializer for x_1_and_2
# 2715| getExpr(): [LogicalAndExpr] ... && ...
# 2715| Type = [BoolType] bool
# 2715| ValueCategory = prvalue
# 2715| getLeftOperand(): [VariableAccess] x1
# 2715| Type = [IntType] int
# 2715| ValueCategory = prvalue(load)
# 2715| getRightOperand(): [VariableAccess] x2
# 2715| Type = [IntType] int
# 2715| ValueCategory = prvalue(load)
# 2715| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2715| Conversion = [BoolConversion] conversion to bool
# 2715| Type = [BoolType] bool
# 2715| ValueCategory = prvalue
# 2715| getRightOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2715| Conversion = [BoolConversion] conversion to bool
# 2715| Type = [BoolType] bool
# 2715| ValueCategory = prvalue
# 2715| getExpr().getFullyConverted(): [CStyleCast] (int)...
# 2715| Conversion = [IntegralConversion] integral conversion
# 2715| Type = [IntType] int
# 2715| ValueCategory = prvalue
# 2716| getStmt(14): [IfStmt] if (...) ...
# 2716| getCondition(): [VariableAccess] x_1_and_2
# 2716| Type = [IntType] int
# 2716| ValueCategory = prvalue(load)
# 2716| getThen(): [BlockStmt] { ... }
# 2716| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 2716| Conversion = [BoolConversion] conversion to bool
# 2716| Type = [BoolType] bool
# 2716| ValueCategory = prvalue
# 2717| getStmt(15): [IfStmt] if (...) ...
# 2717| getCondition(): [NotExpr] ! ...
# 2717| Type = [BoolType] bool
# 2717| ValueCategory = prvalue
# 2717| getOperand(): [VariableAccess] x_1_and_2
# 2717| Type = [IntType] int
# 2717| ValueCategory = prvalue(load)
# 2717| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 2717| Conversion = [BoolConversion] conversion to bool
# 2717| Type = [BoolType] bool
# 2717| ValueCategory = prvalue
# 2717| getThen(): [BlockStmt] { ... }
# 2718| getStmt(16): [ReturnStmt] return ...
many-defs-per-use.cpp:
# 34| [TopLevelFunction] void many_defs_per_use()
# 34| <params>:

View File

@@ -3296,6 +3296,278 @@ ir.c:
# 80| v80_6(void) = AliasedUse : ~m81_5
# 80| v80_7(void) = ExitFunction :
# 84| void branch_on_integral_in_c(int, int)
# 84| Block 0
# 84| v84_1(void) = EnterFunction :
# 84| m84_2(unknown) = AliasedDefinition :
# 84| m84_3(unknown) = InitializeNonLocal :
# 84| m84_4(unknown) = Chi : total:m84_2, partial:m84_3
# 84| r84_5(glval<int>) = VariableAddress[x1] :
# 84| m84_6(int) = InitializeParameter[x1] : &:r84_5
# 84| r84_7(glval<int>) = VariableAddress[x2] :
# 84| m84_8(int) = InitializeParameter[x2] : &:r84_7
# 85| r85_1(glval<int>) = VariableAddress[x1] :
# 85| r85_2(int) = Load[x1] : &:r85_1, m84_6
# 85| v85_3(void) = ConditionalBranch : r85_2
#-----| False -> Block 2
#-----| True -> Block 1
# 85| Block 1
# 85| v85_4(void) = NoOp :
#-----| Goto -> Block 2
# 86| Block 2
# 86| r86_1(glval<int>) = VariableAddress[x1] :
# 86| r86_2(int) = Load[x1] : &:r86_1, m84_6
# 86| r86_3(int) = LogicalNot : r86_2
# 86| v86_4(void) = ConditionalBranch : r86_3
#-----| False -> Block 4
#-----| True -> Block 3
# 86| Block 3
# 86| v86_5(void) = NoOp :
#-----| Goto -> Block 4
# 88| Block 4
# 88| r88_1(glval<int>) = VariableAddress[y] :
# 88| r88_2(glval<int>) = VariableAddress[x1] :
# 88| r88_3(int) = Load[x1] : &:r88_2, m84_6
# 88| r88_4(int) = LogicalNot : r88_3
# 88| m88_5(int) = Store[y] : &:r88_1, r88_4
# 89| r89_1(glval<int>) = VariableAddress[y] :
# 89| r89_2(int) = Load[y] : &:r89_1, m88_5
# 89| v89_3(void) = ConditionalBranch : r89_2
#-----| False -> Block 6
#-----| True -> Block 5
# 89| Block 5
# 89| v89_4(void) = NoOp :
#-----| Goto -> Block 6
# 90| Block 6
# 90| r90_1(glval<int>) = VariableAddress[y] :
# 90| r90_2(int) = Load[y] : &:r90_1, m88_5
# 90| r90_3(int) = LogicalNot : r90_2
# 90| v90_4(void) = ConditionalBranch : r90_3
#-----| False -> Block 8
#-----| True -> Block 7
# 90| Block 7
# 90| v90_5(void) = NoOp :
#-----| Goto -> Block 8
# 92| Block 8
# 92| r92_1(glval<int>) = VariableAddress[x1] :
# 92| r92_2(int) = Load[x1] : &:r92_1, m84_6
# 92| v92_3(void) = ConditionalBranch : r92_2
#-----| False -> Block 11
#-----| True -> Block 9
# 92| Block 9
# 92| r92_4(glval<int>) = VariableAddress[x2] :
# 92| r92_5(int) = Load[x2] : &:r92_4, m84_8
# 92| v92_6(void) = ConditionalBranch : r92_5
#-----| False -> Block 11
#-----| True -> Block 10
# 92| Block 10
# 92| v92_7(void) = NoOp :
#-----| Goto -> Block 11
# 93| Block 11
# 93| r93_1(glval<int>) = VariableAddress[x1] :
# 93| r93_2(int) = Load[x1] : &:r93_1, m84_6
# 93| r93_3(int) = LogicalNot : r93_2
# 93| v93_4(void) = ConditionalBranch : r93_3
#-----| False -> Block 14
#-----| True -> Block 12
# 93| Block 12
# 93| r93_5(glval<int>) = VariableAddress[x2] :
# 93| r93_6(int) = Load[x2] : &:r93_5, m84_8
# 93| v93_7(void) = ConditionalBranch : r93_6
#-----| False -> Block 14
#-----| True -> Block 13
# 93| Block 13
# 93| v93_8(void) = NoOp :
#-----| Goto -> Block 14
# 94| Block 14
# 94| r94_1(glval<int>) = VariableAddress[x1] :
# 94| r94_2(int) = Load[x1] : &:r94_1, m84_6
# 94| v94_3(void) = ConditionalBranch : r94_2
#-----| False -> Block 17
#-----| True -> Block 15
# 94| Block 15
# 94| r94_4(glval<int>) = VariableAddress[x2] :
# 94| r94_5(int) = Load[x2] : &:r94_4, m84_8
# 94| r94_6(int) = LogicalNot : r94_5
# 94| v94_7(void) = ConditionalBranch : r94_6
#-----| False -> Block 17
#-----| True -> Block 16
# 94| Block 16
# 94| v94_8(void) = NoOp :
#-----| Goto -> Block 17
# 95| Block 17
# 95| r95_1(glval<int>) = VariableAddress[x1] :
# 95| r95_2(int) = Load[x1] : &:r95_1, m84_6
# 95| r95_3(int) = LogicalNot : r95_2
# 95| v95_4(void) = ConditionalBranch : r95_3
#-----| False -> Block 20
#-----| True -> Block 18
# 95| Block 18
# 95| r95_5(glval<int>) = VariableAddress[x2] :
# 95| r95_6(int) = Load[x2] : &:r95_5, m84_8
# 95| r95_7(int) = LogicalNot : r95_6
# 95| v95_8(void) = ConditionalBranch : r95_7
#-----| False -> Block 20
#-----| True -> Block 19
# 95| Block 19
# 95| v95_9(void) = NoOp :
#-----| Goto -> Block 20
# 96| Block 20
# 96| r96_1(glval<int>) = VariableAddress[x1] :
# 96| r96_2(int) = Load[x1] : &:r96_1, m84_6
# 96| v96_3(void) = ConditionalBranch : r96_2
#-----| False -> Block 21
#-----| True -> Block 22
# 96| Block 21
# 96| r96_4(glval<int>) = VariableAddress[x2] :
# 96| r96_5(int) = Load[x2] : &:r96_4, m84_8
# 96| v96_6(void) = ConditionalBranch : r96_5
#-----| False -> Block 23
#-----| True -> Block 22
# 96| Block 22
# 96| v96_7(void) = NoOp :
#-----| Goto -> Block 23
# 97| Block 23
# 97| r97_1(glval<int>) = VariableAddress[x1] :
# 97| r97_2(int) = Load[x1] : &:r97_1, m84_6
# 97| r97_3(int) = LogicalNot : r97_2
# 97| v97_4(void) = ConditionalBranch : r97_3
#-----| False -> Block 24
#-----| True -> Block 25
# 97| Block 24
# 97| r97_5(glval<int>) = VariableAddress[x2] :
# 97| r97_6(int) = Load[x2] : &:r97_5, m84_8
# 97| v97_7(void) = ConditionalBranch : r97_6
#-----| False -> Block 26
#-----| True -> Block 25
# 97| Block 25
# 97| v97_8(void) = NoOp :
#-----| Goto -> Block 26
# 98| Block 26
# 98| r98_1(glval<int>) = VariableAddress[x1] :
# 98| r98_2(int) = Load[x1] : &:r98_1, m84_6
# 98| v98_3(void) = ConditionalBranch : r98_2
#-----| False -> Block 27
#-----| True -> Block 28
# 98| Block 27
# 98| r98_4(glval<int>) = VariableAddress[x2] :
# 98| r98_5(int) = Load[x2] : &:r98_4, m84_8
# 98| r98_6(int) = LogicalNot : r98_5
# 98| v98_7(void) = ConditionalBranch : r98_6
#-----| False -> Block 29
#-----| True -> Block 28
# 98| Block 28
# 98| v98_8(void) = NoOp :
#-----| Goto -> Block 29
# 99| Block 29
# 99| r99_1(glval<int>) = VariableAddress[x1] :
# 99| r99_2(int) = Load[x1] : &:r99_1, m84_6
# 99| r99_3(int) = LogicalNot : r99_2
# 99| v99_4(void) = ConditionalBranch : r99_3
#-----| False -> Block 30
#-----| True -> Block 31
# 99| Block 30
# 99| r99_5(glval<int>) = VariableAddress[x2] :
# 99| r99_6(int) = Load[x2] : &:r99_5, m84_8
# 99| r99_7(int) = LogicalNot : r99_6
# 99| v99_8(void) = ConditionalBranch : r99_7
#-----| False -> Block 32
#-----| True -> Block 31
# 99| Block 31
# 99| v99_9(void) = NoOp :
#-----| Goto -> Block 32
# 101| Block 32
# 101| r101_1(glval<int>) = VariableAddress[x_1_and_2] :
# 101| r101_2(glval<int>) = VariableAddress[x1] :
# 101| r101_3(int) = Load[x1] : &:r101_2, m84_6
# 101| v101_4(void) = ConditionalBranch : r101_3
#-----| False -> Block 33
#-----| True -> Block 36
# 101| Block 33
# 101| r101_5(glval<int>) = VariableAddress[#temp101:19] :
# 101| r101_6(int) = Constant[0] :
# 101| m101_7(int) = Store[#temp101:19] : &:r101_5, r101_6
#-----| Goto -> Block 34
# 101| Block 34
# 101| m101_8(int) = Phi : from 33:m101_7, from 35:m101_14
# 101| r101_9(glval<int>) = VariableAddress[#temp101:19] :
# 101| r101_10(int) = Load[#temp101:19] : &:r101_9, m101_8
# 101| m101_11(int) = Store[x_1_and_2] : &:r101_1, r101_10
# 102| r102_1(glval<int>) = VariableAddress[x_1_and_2] :
# 102| r102_2(int) = Load[x_1_and_2] : &:r102_1, m101_11
# 102| v102_3(void) = ConditionalBranch : r102_2
#-----| False -> Block 38
#-----| True -> Block 37
# 101| Block 35
# 101| r101_12(glval<int>) = VariableAddress[#temp101:19] :
# 101| r101_13(int) = Constant[1] :
# 101| m101_14(int) = Store[#temp101:19] : &:r101_12, r101_13
#-----| Goto -> Block 34
# 101| Block 36
# 101| r101_15(glval<int>) = VariableAddress[x2] :
# 101| r101_16(int) = Load[x2] : &:r101_15, m84_8
# 101| v101_17(void) = ConditionalBranch : r101_16
#-----| False -> Block 33
#-----| True -> Block 35
# 102| Block 37
# 102| v102_4(void) = NoOp :
#-----| Goto -> Block 38
# 103| Block 38
# 103| r103_1(glval<int>) = VariableAddress[x_1_and_2] :
# 103| r103_2(int) = Load[x_1_and_2] : &:r103_1, m101_11
# 103| r103_3(int) = LogicalNot : r103_2
# 103| v103_4(void) = ConditionalBranch : r103_3
#-----| False -> Block 40
#-----| True -> Block 39
# 103| Block 39
# 103| v103_5(void) = NoOp :
#-----| Goto -> Block 40
# 104| Block 40
# 104| v104_1(void) = NoOp :
# 84| v84_9(void) = ReturnVoid :
# 84| v84_10(void) = AliasedUse : m84_3
# 84| v84_11(void) = ExitFunction :
ir.cpp:
# 1| void Constants()
# 1| Block 0
@@ -19117,6 +19389,330 @@ ir.cpp:
# 2691| v2691_7(void) = AliasedUse : m2691_3
# 2691| v2691_8(void) = ExitFunction :
# 2698| void branch_on_integral_in_cpp(int, int)
# 2698| Block 0
# 2698| v2698_1(void) = EnterFunction :
# 2698| m2698_2(unknown) = AliasedDefinition :
# 2698| m2698_3(unknown) = InitializeNonLocal :
# 2698| m2698_4(unknown) = Chi : total:m2698_2, partial:m2698_3
# 2698| r2698_5(glval<int>) = VariableAddress[x1] :
# 2698| m2698_6(int) = InitializeParameter[x1] : &:r2698_5
# 2698| r2698_7(glval<int>) = VariableAddress[x2] :
# 2698| m2698_8(int) = InitializeParameter[x2] : &:r2698_7
# 2699| r2699_1(glval<int>) = VariableAddress[x1] :
# 2699| r2699_2(int) = Load[x1] : &:r2699_1, m2698_6
# 2699| r2699_3(int) = Constant[0] :
# 2699| r2699_4(bool) = CompareNE : r2699_2, r2699_3
# 2699| v2699_5(void) = ConditionalBranch : r2699_4
#-----| False -> Block 2
#-----| True -> Block 1
# 2699| Block 1
# 2699| v2699_6(void) = NoOp :
#-----| Goto -> Block 2
# 2700| Block 2
# 2700| r2700_1(glval<int>) = VariableAddress[x1] :
# 2700| r2700_2(int) = Load[x1] : &:r2700_1, m2698_6
# 2700| r2700_3(int) = Constant[0] :
# 2700| r2700_4(bool) = CompareNE : r2700_2, r2700_3
# 2700| r2700_5(bool) = LogicalNot : r2700_4
# 2700| v2700_6(void) = ConditionalBranch : r2700_5
#-----| False -> Block 4
#-----| True -> Block 3
# 2700| Block 3
# 2700| v2700_7(void) = NoOp :
#-----| Goto -> Block 4
# 2702| Block 4
# 2702| r2702_1(glval<int>) = VariableAddress[y] :
# 2702| r2702_2(glval<int>) = VariableAddress[x1] :
# 2702| r2702_3(int) = Load[x1] : &:r2702_2, m2698_6
# 2702| r2702_4(int) = Constant[0] :
# 2702| r2702_5(bool) = CompareNE : r2702_3, r2702_4
# 2702| r2702_6(bool) = LogicalNot : r2702_5
# 2702| r2702_7(int) = Convert : r2702_6
# 2702| m2702_8(int) = Store[y] : &:r2702_1, r2702_7
# 2703| r2703_1(glval<int>) = VariableAddress[y] :
# 2703| r2703_2(int) = Load[y] : &:r2703_1, m2702_8
# 2703| r2703_3(int) = Constant[0] :
# 2703| r2703_4(bool) = CompareNE : r2703_2, r2703_3
# 2703| v2703_5(void) = ConditionalBranch : r2703_4
#-----| False -> Block 6
#-----| True -> Block 5
# 2703| Block 5
# 2703| v2703_6(void) = NoOp :
#-----| Goto -> Block 6
# 2704| Block 6
# 2704| r2704_1(glval<int>) = VariableAddress[y] :
# 2704| r2704_2(int) = Load[y] : &:r2704_1, m2702_8
# 2704| r2704_3(int) = Constant[0] :
# 2704| r2704_4(bool) = CompareNE : r2704_2, r2704_3
# 2704| r2704_5(bool) = LogicalNot : r2704_4
# 2704| v2704_6(void) = ConditionalBranch : r2704_5
#-----| False -> Block 8
#-----| True -> Block 7
# 2704| Block 7
# 2704| v2704_7(void) = NoOp :
#-----| Goto -> Block 8
# 2706| Block 8
# 2706| r2706_1(glval<int>) = VariableAddress[x1] :
# 2706| r2706_2(int) = Load[x1] : &:r2706_1, m2698_6
# 2706| r2706_3(int) = Constant[0] :
# 2706| r2706_4(bool) = CompareNE : r2706_2, r2706_3
# 2706| v2706_5(void) = ConditionalBranch : r2706_4
#-----| False -> Block 11
#-----| True -> Block 9
# 2706| Block 9
# 2706| r2706_6(glval<int>) = VariableAddress[x2] :
# 2706| r2706_7(int) = Load[x2] : &:r2706_6, m2698_8
# 2706| r2706_8(int) = Constant[0] :
# 2706| r2706_9(bool) = CompareNE : r2706_7, r2706_8
# 2706| v2706_10(void) = ConditionalBranch : r2706_9
#-----| False -> Block 11
#-----| True -> Block 10
# 2706| Block 10
# 2706| v2706_11(void) = NoOp :
#-----| Goto -> Block 11
# 2707| Block 11
# 2707| r2707_1(glval<int>) = VariableAddress[x1] :
# 2707| r2707_2(int) = Load[x1] : &:r2707_1, m2698_6
# 2707| r2707_3(int) = Constant[0] :
# 2707| r2707_4(bool) = CompareNE : r2707_2, r2707_3
# 2707| r2707_5(bool) = LogicalNot : r2707_4
# 2707| v2707_6(void) = ConditionalBranch : r2707_5
#-----| False -> Block 14
#-----| True -> Block 12
# 2707| Block 12
# 2707| r2707_7(glval<int>) = VariableAddress[x2] :
# 2707| r2707_8(int) = Load[x2] : &:r2707_7, m2698_8
# 2707| r2707_9(int) = Constant[0] :
# 2707| r2707_10(bool) = CompareNE : r2707_8, r2707_9
# 2707| v2707_11(void) = ConditionalBranch : r2707_10
#-----| False -> Block 14
#-----| True -> Block 13
# 2707| Block 13
# 2707| v2707_12(void) = NoOp :
#-----| Goto -> Block 14
# 2708| Block 14
# 2708| r2708_1(glval<int>) = VariableAddress[x1] :
# 2708| r2708_2(int) = Load[x1] : &:r2708_1, m2698_6
# 2708| r2708_3(int) = Constant[0] :
# 2708| r2708_4(bool) = CompareNE : r2708_2, r2708_3
# 2708| v2708_5(void) = ConditionalBranch : r2708_4
#-----| False -> Block 17
#-----| True -> Block 15
# 2708| Block 15
# 2708| r2708_6(glval<int>) = VariableAddress[x2] :
# 2708| r2708_7(int) = Load[x2] : &:r2708_6, m2698_8
# 2708| r2708_8(int) = Constant[0] :
# 2708| r2708_9(bool) = CompareNE : r2708_7, r2708_8
# 2708| r2708_10(bool) = LogicalNot : r2708_9
# 2708| v2708_11(void) = ConditionalBranch : r2708_10
#-----| False -> Block 17
#-----| True -> Block 16
# 2708| Block 16
# 2708| v2708_12(void) = NoOp :
#-----| Goto -> Block 17
# 2709| Block 17
# 2709| r2709_1(glval<int>) = VariableAddress[x1] :
# 2709| r2709_2(int) = Load[x1] : &:r2709_1, m2698_6
# 2709| r2709_3(int) = Constant[0] :
# 2709| r2709_4(bool) = CompareNE : r2709_2, r2709_3
# 2709| r2709_5(bool) = LogicalNot : r2709_4
# 2709| v2709_6(void) = ConditionalBranch : r2709_5
#-----| False -> Block 20
#-----| True -> Block 18
# 2709| Block 18
# 2709| r2709_7(glval<int>) = VariableAddress[x2] :
# 2709| r2709_8(int) = Load[x2] : &:r2709_7, m2698_8
# 2709| r2709_9(int) = Constant[0] :
# 2709| r2709_10(bool) = CompareNE : r2709_8, r2709_9
# 2709| r2709_11(bool) = LogicalNot : r2709_10
# 2709| v2709_12(void) = ConditionalBranch : r2709_11
#-----| False -> Block 20
#-----| True -> Block 19
# 2709| Block 19
# 2709| v2709_13(void) = NoOp :
#-----| Goto -> Block 20
# 2710| Block 20
# 2710| r2710_1(glval<int>) = VariableAddress[x1] :
# 2710| r2710_2(int) = Load[x1] : &:r2710_1, m2698_6
# 2710| r2710_3(int) = Constant[0] :
# 2710| r2710_4(bool) = CompareNE : r2710_2, r2710_3
# 2710| v2710_5(void) = ConditionalBranch : r2710_4
#-----| False -> Block 21
#-----| True -> Block 22
# 2710| Block 21
# 2710| r2710_6(glval<int>) = VariableAddress[x2] :
# 2710| r2710_7(int) = Load[x2] : &:r2710_6, m2698_8
# 2710| r2710_8(int) = Constant[0] :
# 2710| r2710_9(bool) = CompareNE : r2710_7, r2710_8
# 2710| v2710_10(void) = ConditionalBranch : r2710_9
#-----| False -> Block 23
#-----| True -> Block 22
# 2710| Block 22
# 2710| v2710_11(void) = NoOp :
#-----| Goto -> Block 23
# 2711| Block 23
# 2711| r2711_1(glval<int>) = VariableAddress[x1] :
# 2711| r2711_2(int) = Load[x1] : &:r2711_1, m2698_6
# 2711| r2711_3(int) = Constant[0] :
# 2711| r2711_4(bool) = CompareNE : r2711_2, r2711_3
# 2711| r2711_5(bool) = LogicalNot : r2711_4
# 2711| v2711_6(void) = ConditionalBranch : r2711_5
#-----| False -> Block 24
#-----| True -> Block 25
# 2711| Block 24
# 2711| r2711_7(glval<int>) = VariableAddress[x2] :
# 2711| r2711_8(int) = Load[x2] : &:r2711_7, m2698_8
# 2711| r2711_9(int) = Constant[0] :
# 2711| r2711_10(bool) = CompareNE : r2711_8, r2711_9
# 2711| v2711_11(void) = ConditionalBranch : r2711_10
#-----| False -> Block 26
#-----| True -> Block 25
# 2711| Block 25
# 2711| v2711_12(void) = NoOp :
#-----| Goto -> Block 26
# 2712| Block 26
# 2712| r2712_1(glval<int>) = VariableAddress[x1] :
# 2712| r2712_2(int) = Load[x1] : &:r2712_1, m2698_6
# 2712| r2712_3(int) = Constant[0] :
# 2712| r2712_4(bool) = CompareNE : r2712_2, r2712_3
# 2712| v2712_5(void) = ConditionalBranch : r2712_4
#-----| False -> Block 27
#-----| True -> Block 28
# 2712| Block 27
# 2712| r2712_6(glval<int>) = VariableAddress[x2] :
# 2712| r2712_7(int) = Load[x2] : &:r2712_6, m2698_8
# 2712| r2712_8(int) = Constant[0] :
# 2712| r2712_9(bool) = CompareNE : r2712_7, r2712_8
# 2712| r2712_10(bool) = LogicalNot : r2712_9
# 2712| v2712_11(void) = ConditionalBranch : r2712_10
#-----| False -> Block 29
#-----| True -> Block 28
# 2712| Block 28
# 2712| v2712_12(void) = NoOp :
#-----| Goto -> Block 29
# 2713| Block 29
# 2713| r2713_1(glval<int>) = VariableAddress[x1] :
# 2713| r2713_2(int) = Load[x1] : &:r2713_1, m2698_6
# 2713| r2713_3(int) = Constant[0] :
# 2713| r2713_4(bool) = CompareNE : r2713_2, r2713_3
# 2713| r2713_5(bool) = LogicalNot : r2713_4
# 2713| v2713_6(void) = ConditionalBranch : r2713_5
#-----| False -> Block 30
#-----| True -> Block 31
# 2713| Block 30
# 2713| r2713_7(glval<int>) = VariableAddress[x2] :
# 2713| r2713_8(int) = Load[x2] : &:r2713_7, m2698_8
# 2713| r2713_9(int) = Constant[0] :
# 2713| r2713_10(bool) = CompareNE : r2713_8, r2713_9
# 2713| r2713_11(bool) = LogicalNot : r2713_10
# 2713| v2713_12(void) = ConditionalBranch : r2713_11
#-----| False -> Block 32
#-----| True -> Block 31
# 2713| Block 31
# 2713| v2713_13(void) = NoOp :
#-----| Goto -> Block 32
# 2715| Block 32
# 2715| r2715_1(glval<int>) = VariableAddress[x_1_and_2] :
# 2715| r2715_2(glval<int>) = VariableAddress[x1] :
# 2715| r2715_3(int) = Load[x1] : &:r2715_2, m2698_6
# 2715| r2715_4(int) = Constant[0] :
# 2715| r2715_5(bool) = CompareNE : r2715_3, r2715_4
# 2715| v2715_6(void) = ConditionalBranch : r2715_5
#-----| False -> Block 33
#-----| True -> Block 36
# 2715| Block 33
# 2715| r2715_7(glval<bool>) = VariableAddress[#temp2715:19] :
# 2715| r2715_8(bool) = Constant[0] :
# 2715| m2715_9(bool) = Store[#temp2715:19] : &:r2715_7, r2715_8
#-----| Goto -> Block 34
# 2715| Block 34
# 2715| m2715_10(bool) = Phi : from 33:m2715_9, from 35:m2715_17
# 2715| r2715_11(glval<bool>) = VariableAddress[#temp2715:19] :
# 2715| r2715_12(bool) = Load[#temp2715:19] : &:r2715_11, m2715_10
# 2715| r2715_13(int) = Convert : r2715_12
# 2715| m2715_14(int) = Store[x_1_and_2] : &:r2715_1, r2715_13
# 2716| r2716_1(glval<int>) = VariableAddress[x_1_and_2] :
# 2716| r2716_2(int) = Load[x_1_and_2] : &:r2716_1, m2715_14
# 2716| r2716_3(int) = Constant[0] :
# 2716| r2716_4(bool) = CompareNE : r2716_2, r2716_3
# 2716| v2716_5(void) = ConditionalBranch : r2716_4
#-----| False -> Block 38
#-----| True -> Block 37
# 2715| Block 35
# 2715| r2715_15(glval<bool>) = VariableAddress[#temp2715:19] :
# 2715| r2715_16(bool) = Constant[1] :
# 2715| m2715_17(bool) = Store[#temp2715:19] : &:r2715_15, r2715_16
#-----| Goto -> Block 34
# 2715| Block 36
# 2715| r2715_18(glval<int>) = VariableAddress[x2] :
# 2715| r2715_19(int) = Load[x2] : &:r2715_18, m2698_8
# 2715| r2715_20(int) = Constant[0] :
# 2715| r2715_21(bool) = CompareNE : r2715_19, r2715_20
# 2715| v2715_22(void) = ConditionalBranch : r2715_21
#-----| False -> Block 33
#-----| True -> Block 35
# 2716| Block 37
# 2716| v2716_6(void) = NoOp :
#-----| Goto -> Block 38
# 2717| Block 38
# 2717| r2717_1(glval<int>) = VariableAddress[x_1_and_2] :
# 2717| r2717_2(int) = Load[x_1_and_2] : &:r2717_1, m2715_14
# 2717| r2717_3(int) = Constant[0] :
# 2717| r2717_4(bool) = CompareNE : r2717_2, r2717_3
# 2717| r2717_5(bool) = LogicalNot : r2717_4
# 2717| v2717_6(void) = ConditionalBranch : r2717_5
#-----| False -> Block 40
#-----| True -> Block 39
# 2717| Block 39
# 2717| v2717_7(void) = NoOp :
#-----| Goto -> Block 40
# 2718| Block 40
# 2718| v2718_1(void) = NoOp :
# 2698| v2698_9(void) = ReturnVoid :
# 2698| v2698_10(void) = AliasedUse : m2698_3
# 2698| v2698_11(void) = ExitFunction :
many-defs-per-use.cpp:
# 34| void many_defs_per_use()
# 34| Block 0

View File

@@ -30,5 +30,41 @@ thisArgumentIsNonPointer
| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) |
nonUniqueIRVariable
nonBooleanOperand
| ir.c:85:7:85:8 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:88:11:88:13 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:89:6:89:6 | ConditionalBranch: y | Conditional branch instruction ConditionalBranch: y with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:6:92:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:12:92:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:13:93:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:6:94:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:6:96:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:12:96:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:13:97:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:6:98:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:19:101:20 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:25:101:26 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:102:6:102:14 | ConditionalBranch: x_1_and_2 | Conditional branch instruction ConditionalBranch: x_1_and_2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| try_except.c:35:13:35:13 | ConditionalBranch: b | Conditional branch instruction ConditionalBranch: b with non-Boolean condition, in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) |
missingCppType

View File

@@ -30,5 +30,41 @@ thisArgumentIsNonPointer
| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) |
nonUniqueIRVariable
nonBooleanOperand
| ir.c:85:7:85:8 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:88:11:88:13 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:89:6:89:6 | ConditionalBranch: y | Conditional branch instruction ConditionalBranch: y with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:6:92:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:12:92:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:13:93:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:6:94:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:6:96:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:12:96:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:13:97:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:6:98:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:19:101:20 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:25:101:26 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:102:6:102:14 | ConditionalBranch: x_1_and_2 | Conditional branch instruction ConditionalBranch: x_1_and_2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| try_except.c:35:13:35:13 | ConditionalBranch: b | Conditional branch instruction ConditionalBranch: b with non-Boolean condition, in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) |
missingCppType

View File

@@ -81,4 +81,26 @@ void raise_access_violation() {
ExRaiseAccessViolation(1);
}
void branch_on_integral_in_c(int x1, int x2) {
if (x1) {}
if(!x1) {}
int y = !x1;
if(y) {}
if(!y) {}
if(x1 && x2) {}
if(!x1 && x2) {}
if(x1 && !x2) {}
if(!x1 && !x2) {}
if(x1 || x2) {}
if(!x1 || x2) {}
if(x1 || !x2) {}
if(!x1 || !x2) {}
int x_1_and_2 = x1 && x2;
if(x_1_and_2) {}
if(!x_1_and_2) {}
}
// semmle-extractor-options: --microsoft

View File

@@ -2695,4 +2695,26 @@ int requires_use() {
}
void branch_on_integral_in_cpp(int x1, int x2) {
if (x1) {}
if(!x1) {}
int y = !x1;
if(y) {}
if(!y) {}
if(x1 && x2) {}
if(!x1 && x2) {}
if(x1 && !x2) {}
if(!x1 && !x2) {}
if(x1 || x2) {}
if(!x1 || x2) {}
if(x1 || !x2) {}
if(!x1 || !x2) {}
int x_1_and_2 = x1 && x2;
if(x_1_and_2) {}
if(!x_1_and_2) {}
}
// semmle-extractor-options: -std=c++20 --clang

View File

@@ -39,5 +39,41 @@ thisArgumentIsNonPointer
| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) |
nonUniqueIRVariable
nonBooleanOperand
| ir.c:85:7:85:8 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:88:11:88:13 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:89:6:89:6 | ConditionalBranch: y | Conditional branch instruction ConditionalBranch: y with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:6:92:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:12:92:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:13:93:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:6:94:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:6:96:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:12:96:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:13:97:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:6:98:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:19:101:20 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:25:101:26 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:102:6:102:14 | ConditionalBranch: x_1_and_2 | Conditional branch instruction ConditionalBranch: x_1_and_2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| try_except.c:35:13:35:13 | ConditionalBranch: b | Conditional branch instruction ConditionalBranch: b with non-Boolean condition, in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) |
missingCppType

View File

@@ -3095,6 +3095,276 @@ ir.c:
# 80| v80_7(void) = ReturnVoid :
#-----| Goto -> Block 1
# 84| void branch_on_integral_in_c(int, int)
# 84| Block 0
# 84| v84_1(void) = EnterFunction :
# 84| mu84_2(unknown) = AliasedDefinition :
# 84| mu84_3(unknown) = InitializeNonLocal :
# 84| r84_4(glval<int>) = VariableAddress[x1] :
# 84| mu84_5(int) = InitializeParameter[x1] : &:r84_4
# 84| r84_6(glval<int>) = VariableAddress[x2] :
# 84| mu84_7(int) = InitializeParameter[x2] : &:r84_6
# 85| r85_1(glval<int>) = VariableAddress[x1] :
# 85| r85_2(int) = Load[x1] : &:r85_1, ~m?
# 85| v85_3(void) = ConditionalBranch : r85_2
#-----| False -> Block 2
#-----| True -> Block 1
# 85| Block 1
# 85| v85_4(void) = NoOp :
#-----| Goto -> Block 2
# 86| Block 2
# 86| r86_1(glval<int>) = VariableAddress[x1] :
# 86| r86_2(int) = Load[x1] : &:r86_1, ~m?
# 86| r86_3(int) = LogicalNot : r86_2
# 86| v86_4(void) = ConditionalBranch : r86_3
#-----| False -> Block 4
#-----| True -> Block 3
# 86| Block 3
# 86| v86_5(void) = NoOp :
#-----| Goto -> Block 4
# 88| Block 4
# 88| r88_1(glval<int>) = VariableAddress[y] :
# 88| r88_2(glval<int>) = VariableAddress[x1] :
# 88| r88_3(int) = Load[x1] : &:r88_2, ~m?
# 88| r88_4(int) = LogicalNot : r88_3
# 88| mu88_5(int) = Store[y] : &:r88_1, r88_4
# 89| r89_1(glval<int>) = VariableAddress[y] :
# 89| r89_2(int) = Load[y] : &:r89_1, ~m?
# 89| v89_3(void) = ConditionalBranch : r89_2
#-----| False -> Block 6
#-----| True -> Block 5
# 89| Block 5
# 89| v89_4(void) = NoOp :
#-----| Goto -> Block 6
# 90| Block 6
# 90| r90_1(glval<int>) = VariableAddress[y] :
# 90| r90_2(int) = Load[y] : &:r90_1, ~m?
# 90| r90_3(int) = LogicalNot : r90_2
# 90| v90_4(void) = ConditionalBranch : r90_3
#-----| False -> Block 8
#-----| True -> Block 7
# 90| Block 7
# 90| v90_5(void) = NoOp :
#-----| Goto -> Block 8
# 92| Block 8
# 92| r92_1(glval<int>) = VariableAddress[x1] :
# 92| r92_2(int) = Load[x1] : &:r92_1, ~m?
# 92| v92_3(void) = ConditionalBranch : r92_2
#-----| False -> Block 11
#-----| True -> Block 9
# 92| Block 9
# 92| r92_4(glval<int>) = VariableAddress[x2] :
# 92| r92_5(int) = Load[x2] : &:r92_4, ~m?
# 92| v92_6(void) = ConditionalBranch : r92_5
#-----| False -> Block 11
#-----| True -> Block 10
# 92| Block 10
# 92| v92_7(void) = NoOp :
#-----| Goto -> Block 11
# 93| Block 11
# 93| r93_1(glval<int>) = VariableAddress[x1] :
# 93| r93_2(int) = Load[x1] : &:r93_1, ~m?
# 93| r93_3(int) = LogicalNot : r93_2
# 93| v93_4(void) = ConditionalBranch : r93_3
#-----| False -> Block 14
#-----| True -> Block 12
# 93| Block 12
# 93| r93_5(glval<int>) = VariableAddress[x2] :
# 93| r93_6(int) = Load[x2] : &:r93_5, ~m?
# 93| v93_7(void) = ConditionalBranch : r93_6
#-----| False -> Block 14
#-----| True -> Block 13
# 93| Block 13
# 93| v93_8(void) = NoOp :
#-----| Goto -> Block 14
# 94| Block 14
# 94| r94_1(glval<int>) = VariableAddress[x1] :
# 94| r94_2(int) = Load[x1] : &:r94_1, ~m?
# 94| v94_3(void) = ConditionalBranch : r94_2
#-----| False -> Block 17
#-----| True -> Block 15
# 94| Block 15
# 94| r94_4(glval<int>) = VariableAddress[x2] :
# 94| r94_5(int) = Load[x2] : &:r94_4, ~m?
# 94| r94_6(int) = LogicalNot : r94_5
# 94| v94_7(void) = ConditionalBranch : r94_6
#-----| False -> Block 17
#-----| True -> Block 16
# 94| Block 16
# 94| v94_8(void) = NoOp :
#-----| Goto -> Block 17
# 95| Block 17
# 95| r95_1(glval<int>) = VariableAddress[x1] :
# 95| r95_2(int) = Load[x1] : &:r95_1, ~m?
# 95| r95_3(int) = LogicalNot : r95_2
# 95| v95_4(void) = ConditionalBranch : r95_3
#-----| False -> Block 20
#-----| True -> Block 18
# 95| Block 18
# 95| r95_5(glval<int>) = VariableAddress[x2] :
# 95| r95_6(int) = Load[x2] : &:r95_5, ~m?
# 95| r95_7(int) = LogicalNot : r95_6
# 95| v95_8(void) = ConditionalBranch : r95_7
#-----| False -> Block 20
#-----| True -> Block 19
# 95| Block 19
# 95| v95_9(void) = NoOp :
#-----| Goto -> Block 20
# 96| Block 20
# 96| r96_1(glval<int>) = VariableAddress[x1] :
# 96| r96_2(int) = Load[x1] : &:r96_1, ~m?
# 96| v96_3(void) = ConditionalBranch : r96_2
#-----| False -> Block 21
#-----| True -> Block 22
# 96| Block 21
# 96| r96_4(glval<int>) = VariableAddress[x2] :
# 96| r96_5(int) = Load[x2] : &:r96_4, ~m?
# 96| v96_6(void) = ConditionalBranch : r96_5
#-----| False -> Block 23
#-----| True -> Block 22
# 96| Block 22
# 96| v96_7(void) = NoOp :
#-----| Goto -> Block 23
# 97| Block 23
# 97| r97_1(glval<int>) = VariableAddress[x1] :
# 97| r97_2(int) = Load[x1] : &:r97_1, ~m?
# 97| r97_3(int) = LogicalNot : r97_2
# 97| v97_4(void) = ConditionalBranch : r97_3
#-----| False -> Block 24
#-----| True -> Block 25
# 97| Block 24
# 97| r97_5(glval<int>) = VariableAddress[x2] :
# 97| r97_6(int) = Load[x2] : &:r97_5, ~m?
# 97| v97_7(void) = ConditionalBranch : r97_6
#-----| False -> Block 26
#-----| True -> Block 25
# 97| Block 25
# 97| v97_8(void) = NoOp :
#-----| Goto -> Block 26
# 98| Block 26
# 98| r98_1(glval<int>) = VariableAddress[x1] :
# 98| r98_2(int) = Load[x1] : &:r98_1, ~m?
# 98| v98_3(void) = ConditionalBranch : r98_2
#-----| False -> Block 27
#-----| True -> Block 28
# 98| Block 27
# 98| r98_4(glval<int>) = VariableAddress[x2] :
# 98| r98_5(int) = Load[x2] : &:r98_4, ~m?
# 98| r98_6(int) = LogicalNot : r98_5
# 98| v98_7(void) = ConditionalBranch : r98_6
#-----| False -> Block 29
#-----| True -> Block 28
# 98| Block 28
# 98| v98_8(void) = NoOp :
#-----| Goto -> Block 29
# 99| Block 29
# 99| r99_1(glval<int>) = VariableAddress[x1] :
# 99| r99_2(int) = Load[x1] : &:r99_1, ~m?
# 99| r99_3(int) = LogicalNot : r99_2
# 99| v99_4(void) = ConditionalBranch : r99_3
#-----| False -> Block 30
#-----| True -> Block 31
# 99| Block 30
# 99| r99_5(glval<int>) = VariableAddress[x2] :
# 99| r99_6(int) = Load[x2] : &:r99_5, ~m?
# 99| r99_7(int) = LogicalNot : r99_6
# 99| v99_8(void) = ConditionalBranch : r99_7
#-----| False -> Block 32
#-----| True -> Block 31
# 99| Block 31
# 99| v99_9(void) = NoOp :
#-----| Goto -> Block 32
# 101| Block 32
# 101| r101_1(glval<int>) = VariableAddress[x_1_and_2] :
# 101| r101_2(glval<int>) = VariableAddress[x1] :
# 101| r101_3(int) = Load[x1] : &:r101_2, ~m?
# 101| v101_4(void) = ConditionalBranch : r101_3
#-----| False -> Block 33
#-----| True -> Block 36
# 101| Block 33
# 101| r101_5(glval<int>) = VariableAddress[#temp101:19] :
# 101| r101_6(int) = Constant[0] :
# 101| mu101_7(int) = Store[#temp101:19] : &:r101_5, r101_6
#-----| Goto -> Block 34
# 101| Block 34
# 101| r101_8(glval<int>) = VariableAddress[#temp101:19] :
# 101| r101_9(int) = Load[#temp101:19] : &:r101_8, ~m?
# 101| mu101_10(int) = Store[x_1_and_2] : &:r101_1, r101_9
# 102| r102_1(glval<int>) = VariableAddress[x_1_and_2] :
# 102| r102_2(int) = Load[x_1_and_2] : &:r102_1, ~m?
# 102| v102_3(void) = ConditionalBranch : r102_2
#-----| False -> Block 38
#-----| True -> Block 37
# 101| Block 35
# 101| r101_11(glval<int>) = VariableAddress[#temp101:19] :
# 101| r101_12(int) = Constant[1] :
# 101| mu101_13(int) = Store[#temp101:19] : &:r101_11, r101_12
#-----| Goto -> Block 34
# 101| Block 36
# 101| r101_14(glval<int>) = VariableAddress[x2] :
# 101| r101_15(int) = Load[x2] : &:r101_14, ~m?
# 101| v101_16(void) = ConditionalBranch : r101_15
#-----| False -> Block 33
#-----| True -> Block 35
# 102| Block 37
# 102| v102_4(void) = NoOp :
#-----| Goto -> Block 38
# 103| Block 38
# 103| r103_1(glval<int>) = VariableAddress[x_1_and_2] :
# 103| r103_2(int) = Load[x_1_and_2] : &:r103_1, ~m?
# 103| r103_3(int) = LogicalNot : r103_2
# 103| v103_4(void) = ConditionalBranch : r103_3
#-----| False -> Block 40
#-----| True -> Block 39
# 103| Block 39
# 103| v103_5(void) = NoOp :
#-----| Goto -> Block 40
# 104| Block 40
# 104| v104_1(void) = NoOp :
# 84| v84_8(void) = ReturnVoid :
# 84| v84_9(void) = AliasedUse : ~m?
# 84| v84_10(void) = ExitFunction :
ir.cpp:
# 1| void Constants()
# 1| Block 0
@@ -17439,6 +17709,328 @@ ir.cpp:
# 2691| v2691_6(void) = AliasedUse : ~m?
# 2691| v2691_7(void) = ExitFunction :
# 2698| void branch_on_integral_in_cpp(int, int)
# 2698| Block 0
# 2698| v2698_1(void) = EnterFunction :
# 2698| mu2698_2(unknown) = AliasedDefinition :
# 2698| mu2698_3(unknown) = InitializeNonLocal :
# 2698| r2698_4(glval<int>) = VariableAddress[x1] :
# 2698| mu2698_5(int) = InitializeParameter[x1] : &:r2698_4
# 2698| r2698_6(glval<int>) = VariableAddress[x2] :
# 2698| mu2698_7(int) = InitializeParameter[x2] : &:r2698_6
# 2699| r2699_1(glval<int>) = VariableAddress[x1] :
# 2699| r2699_2(int) = Load[x1] : &:r2699_1, ~m?
# 2699| r2699_3(int) = Constant[0] :
# 2699| r2699_4(bool) = CompareNE : r2699_2, r2699_3
# 2699| v2699_5(void) = ConditionalBranch : r2699_4
#-----| False -> Block 2
#-----| True -> Block 1
# 2699| Block 1
# 2699| v2699_6(void) = NoOp :
#-----| Goto -> Block 2
# 2700| Block 2
# 2700| r2700_1(glval<int>) = VariableAddress[x1] :
# 2700| r2700_2(int) = Load[x1] : &:r2700_1, ~m?
# 2700| r2700_3(int) = Constant[0] :
# 2700| r2700_4(bool) = CompareNE : r2700_2, r2700_3
# 2700| r2700_5(bool) = LogicalNot : r2700_4
# 2700| v2700_6(void) = ConditionalBranch : r2700_5
#-----| False -> Block 4
#-----| True -> Block 3
# 2700| Block 3
# 2700| v2700_7(void) = NoOp :
#-----| Goto -> Block 4
# 2702| Block 4
# 2702| r2702_1(glval<int>) = VariableAddress[y] :
# 2702| r2702_2(glval<int>) = VariableAddress[x1] :
# 2702| r2702_3(int) = Load[x1] : &:r2702_2, ~m?
# 2702| r2702_4(int) = Constant[0] :
# 2702| r2702_5(bool) = CompareNE : r2702_3, r2702_4
# 2702| r2702_6(bool) = LogicalNot : r2702_5
# 2702| r2702_7(int) = Convert : r2702_6
# 2702| mu2702_8(int) = Store[y] : &:r2702_1, r2702_7
# 2703| r2703_1(glval<int>) = VariableAddress[y] :
# 2703| r2703_2(int) = Load[y] : &:r2703_1, ~m?
# 2703| r2703_3(int) = Constant[0] :
# 2703| r2703_4(bool) = CompareNE : r2703_2, r2703_3
# 2703| v2703_5(void) = ConditionalBranch : r2703_4
#-----| False -> Block 6
#-----| True -> Block 5
# 2703| Block 5
# 2703| v2703_6(void) = NoOp :
#-----| Goto -> Block 6
# 2704| Block 6
# 2704| r2704_1(glval<int>) = VariableAddress[y] :
# 2704| r2704_2(int) = Load[y] : &:r2704_1, ~m?
# 2704| r2704_3(int) = Constant[0] :
# 2704| r2704_4(bool) = CompareNE : r2704_2, r2704_3
# 2704| r2704_5(bool) = LogicalNot : r2704_4
# 2704| v2704_6(void) = ConditionalBranch : r2704_5
#-----| False -> Block 8
#-----| True -> Block 7
# 2704| Block 7
# 2704| v2704_7(void) = NoOp :
#-----| Goto -> Block 8
# 2706| Block 8
# 2706| r2706_1(glval<int>) = VariableAddress[x1] :
# 2706| r2706_2(int) = Load[x1] : &:r2706_1, ~m?
# 2706| r2706_3(int) = Constant[0] :
# 2706| r2706_4(bool) = CompareNE : r2706_2, r2706_3
# 2706| v2706_5(void) = ConditionalBranch : r2706_4
#-----| False -> Block 11
#-----| True -> Block 9
# 2706| Block 9
# 2706| r2706_6(glval<int>) = VariableAddress[x2] :
# 2706| r2706_7(int) = Load[x2] : &:r2706_6, ~m?
# 2706| r2706_8(int) = Constant[0] :
# 2706| r2706_9(bool) = CompareNE : r2706_7, r2706_8
# 2706| v2706_10(void) = ConditionalBranch : r2706_9
#-----| False -> Block 11
#-----| True -> Block 10
# 2706| Block 10
# 2706| v2706_11(void) = NoOp :
#-----| Goto -> Block 11
# 2707| Block 11
# 2707| r2707_1(glval<int>) = VariableAddress[x1] :
# 2707| r2707_2(int) = Load[x1] : &:r2707_1, ~m?
# 2707| r2707_3(int) = Constant[0] :
# 2707| r2707_4(bool) = CompareNE : r2707_2, r2707_3
# 2707| r2707_5(bool) = LogicalNot : r2707_4
# 2707| v2707_6(void) = ConditionalBranch : r2707_5
#-----| False -> Block 14
#-----| True -> Block 12
# 2707| Block 12
# 2707| r2707_7(glval<int>) = VariableAddress[x2] :
# 2707| r2707_8(int) = Load[x2] : &:r2707_7, ~m?
# 2707| r2707_9(int) = Constant[0] :
# 2707| r2707_10(bool) = CompareNE : r2707_8, r2707_9
# 2707| v2707_11(void) = ConditionalBranch : r2707_10
#-----| False -> Block 14
#-----| True -> Block 13
# 2707| Block 13
# 2707| v2707_12(void) = NoOp :
#-----| Goto -> Block 14
# 2708| Block 14
# 2708| r2708_1(glval<int>) = VariableAddress[x1] :
# 2708| r2708_2(int) = Load[x1] : &:r2708_1, ~m?
# 2708| r2708_3(int) = Constant[0] :
# 2708| r2708_4(bool) = CompareNE : r2708_2, r2708_3
# 2708| v2708_5(void) = ConditionalBranch : r2708_4
#-----| False -> Block 17
#-----| True -> Block 15
# 2708| Block 15
# 2708| r2708_6(glval<int>) = VariableAddress[x2] :
# 2708| r2708_7(int) = Load[x2] : &:r2708_6, ~m?
# 2708| r2708_8(int) = Constant[0] :
# 2708| r2708_9(bool) = CompareNE : r2708_7, r2708_8
# 2708| r2708_10(bool) = LogicalNot : r2708_9
# 2708| v2708_11(void) = ConditionalBranch : r2708_10
#-----| False -> Block 17
#-----| True -> Block 16
# 2708| Block 16
# 2708| v2708_12(void) = NoOp :
#-----| Goto -> Block 17
# 2709| Block 17
# 2709| r2709_1(glval<int>) = VariableAddress[x1] :
# 2709| r2709_2(int) = Load[x1] : &:r2709_1, ~m?
# 2709| r2709_3(int) = Constant[0] :
# 2709| r2709_4(bool) = CompareNE : r2709_2, r2709_3
# 2709| r2709_5(bool) = LogicalNot : r2709_4
# 2709| v2709_6(void) = ConditionalBranch : r2709_5
#-----| False -> Block 20
#-----| True -> Block 18
# 2709| Block 18
# 2709| r2709_7(glval<int>) = VariableAddress[x2] :
# 2709| r2709_8(int) = Load[x2] : &:r2709_7, ~m?
# 2709| r2709_9(int) = Constant[0] :
# 2709| r2709_10(bool) = CompareNE : r2709_8, r2709_9
# 2709| r2709_11(bool) = LogicalNot : r2709_10
# 2709| v2709_12(void) = ConditionalBranch : r2709_11
#-----| False -> Block 20
#-----| True -> Block 19
# 2709| Block 19
# 2709| v2709_13(void) = NoOp :
#-----| Goto -> Block 20
# 2710| Block 20
# 2710| r2710_1(glval<int>) = VariableAddress[x1] :
# 2710| r2710_2(int) = Load[x1] : &:r2710_1, ~m?
# 2710| r2710_3(int) = Constant[0] :
# 2710| r2710_4(bool) = CompareNE : r2710_2, r2710_3
# 2710| v2710_5(void) = ConditionalBranch : r2710_4
#-----| False -> Block 21
#-----| True -> Block 22
# 2710| Block 21
# 2710| r2710_6(glval<int>) = VariableAddress[x2] :
# 2710| r2710_7(int) = Load[x2] : &:r2710_6, ~m?
# 2710| r2710_8(int) = Constant[0] :
# 2710| r2710_9(bool) = CompareNE : r2710_7, r2710_8
# 2710| v2710_10(void) = ConditionalBranch : r2710_9
#-----| False -> Block 23
#-----| True -> Block 22
# 2710| Block 22
# 2710| v2710_11(void) = NoOp :
#-----| Goto -> Block 23
# 2711| Block 23
# 2711| r2711_1(glval<int>) = VariableAddress[x1] :
# 2711| r2711_2(int) = Load[x1] : &:r2711_1, ~m?
# 2711| r2711_3(int) = Constant[0] :
# 2711| r2711_4(bool) = CompareNE : r2711_2, r2711_3
# 2711| r2711_5(bool) = LogicalNot : r2711_4
# 2711| v2711_6(void) = ConditionalBranch : r2711_5
#-----| False -> Block 24
#-----| True -> Block 25
# 2711| Block 24
# 2711| r2711_7(glval<int>) = VariableAddress[x2] :
# 2711| r2711_8(int) = Load[x2] : &:r2711_7, ~m?
# 2711| r2711_9(int) = Constant[0] :
# 2711| r2711_10(bool) = CompareNE : r2711_8, r2711_9
# 2711| v2711_11(void) = ConditionalBranch : r2711_10
#-----| False -> Block 26
#-----| True -> Block 25
# 2711| Block 25
# 2711| v2711_12(void) = NoOp :
#-----| Goto -> Block 26
# 2712| Block 26
# 2712| r2712_1(glval<int>) = VariableAddress[x1] :
# 2712| r2712_2(int) = Load[x1] : &:r2712_1, ~m?
# 2712| r2712_3(int) = Constant[0] :
# 2712| r2712_4(bool) = CompareNE : r2712_2, r2712_3
# 2712| v2712_5(void) = ConditionalBranch : r2712_4
#-----| False -> Block 27
#-----| True -> Block 28
# 2712| Block 27
# 2712| r2712_6(glval<int>) = VariableAddress[x2] :
# 2712| r2712_7(int) = Load[x2] : &:r2712_6, ~m?
# 2712| r2712_8(int) = Constant[0] :
# 2712| r2712_9(bool) = CompareNE : r2712_7, r2712_8
# 2712| r2712_10(bool) = LogicalNot : r2712_9
# 2712| v2712_11(void) = ConditionalBranch : r2712_10
#-----| False -> Block 29
#-----| True -> Block 28
# 2712| Block 28
# 2712| v2712_12(void) = NoOp :
#-----| Goto -> Block 29
# 2713| Block 29
# 2713| r2713_1(glval<int>) = VariableAddress[x1] :
# 2713| r2713_2(int) = Load[x1] : &:r2713_1, ~m?
# 2713| r2713_3(int) = Constant[0] :
# 2713| r2713_4(bool) = CompareNE : r2713_2, r2713_3
# 2713| r2713_5(bool) = LogicalNot : r2713_4
# 2713| v2713_6(void) = ConditionalBranch : r2713_5
#-----| False -> Block 30
#-----| True -> Block 31
# 2713| Block 30
# 2713| r2713_7(glval<int>) = VariableAddress[x2] :
# 2713| r2713_8(int) = Load[x2] : &:r2713_7, ~m?
# 2713| r2713_9(int) = Constant[0] :
# 2713| r2713_10(bool) = CompareNE : r2713_8, r2713_9
# 2713| r2713_11(bool) = LogicalNot : r2713_10
# 2713| v2713_12(void) = ConditionalBranch : r2713_11
#-----| False -> Block 32
#-----| True -> Block 31
# 2713| Block 31
# 2713| v2713_13(void) = NoOp :
#-----| Goto -> Block 32
# 2715| Block 32
# 2715| r2715_1(glval<int>) = VariableAddress[x_1_and_2] :
# 2715| r2715_2(glval<int>) = VariableAddress[x1] :
# 2715| r2715_3(int) = Load[x1] : &:r2715_2, ~m?
# 2715| r2715_4(int) = Constant[0] :
# 2715| r2715_5(bool) = CompareNE : r2715_3, r2715_4
# 2715| v2715_6(void) = ConditionalBranch : r2715_5
#-----| False -> Block 33
#-----| True -> Block 36
# 2715| Block 33
# 2715| r2715_7(glval<bool>) = VariableAddress[#temp2715:19] :
# 2715| r2715_8(bool) = Constant[0] :
# 2715| mu2715_9(bool) = Store[#temp2715:19] : &:r2715_7, r2715_8
#-----| Goto -> Block 34
# 2715| Block 34
# 2715| r2715_10(glval<bool>) = VariableAddress[#temp2715:19] :
# 2715| r2715_11(bool) = Load[#temp2715:19] : &:r2715_10, ~m?
# 2715| r2715_12(int) = Convert : r2715_11
# 2715| mu2715_13(int) = Store[x_1_and_2] : &:r2715_1, r2715_12
# 2716| r2716_1(glval<int>) = VariableAddress[x_1_and_2] :
# 2716| r2716_2(int) = Load[x_1_and_2] : &:r2716_1, ~m?
# 2716| r2716_3(int) = Constant[0] :
# 2716| r2716_4(bool) = CompareNE : r2716_2, r2716_3
# 2716| v2716_5(void) = ConditionalBranch : r2716_4
#-----| False -> Block 38
#-----| True -> Block 37
# 2715| Block 35
# 2715| r2715_14(glval<bool>) = VariableAddress[#temp2715:19] :
# 2715| r2715_15(bool) = Constant[1] :
# 2715| mu2715_16(bool) = Store[#temp2715:19] : &:r2715_14, r2715_15
#-----| Goto -> Block 34
# 2715| Block 36
# 2715| r2715_17(glval<int>) = VariableAddress[x2] :
# 2715| r2715_18(int) = Load[x2] : &:r2715_17, ~m?
# 2715| r2715_19(int) = Constant[0] :
# 2715| r2715_20(bool) = CompareNE : r2715_18, r2715_19
# 2715| v2715_21(void) = ConditionalBranch : r2715_20
#-----| False -> Block 33
#-----| True -> Block 35
# 2716| Block 37
# 2716| v2716_6(void) = NoOp :
#-----| Goto -> Block 38
# 2717| Block 38
# 2717| r2717_1(glval<int>) = VariableAddress[x_1_and_2] :
# 2717| r2717_2(int) = Load[x_1_and_2] : &:r2717_1, ~m?
# 2717| r2717_3(int) = Constant[0] :
# 2717| r2717_4(bool) = CompareNE : r2717_2, r2717_3
# 2717| r2717_5(bool) = LogicalNot : r2717_4
# 2717| v2717_6(void) = ConditionalBranch : r2717_5
#-----| False -> Block 40
#-----| True -> Block 39
# 2717| Block 39
# 2717| v2717_7(void) = NoOp :
#-----| Goto -> Block 40
# 2718| Block 40
# 2718| v2718_1(void) = NoOp :
# 2698| v2698_8(void) = ReturnVoid :
# 2698| v2698_9(void) = AliasedUse : ~m?
# 2698| v2698_10(void) = ExitFunction :
many-defs-per-use.cpp:
# 34| void many_defs_per_use()
# 34| Block 0

View File

@@ -30,5 +30,41 @@ thisArgumentIsNonPointer
| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) |
nonUniqueIRVariable
nonBooleanOperand
| ir.c:85:7:85:8 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:88:11:88:13 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:89:6:89:6 | ConditionalBranch: y | Conditional branch instruction ConditionalBranch: y with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:6:92:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:12:92:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:13:93:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:6:94:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:6:96:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:12:96:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:13:97:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:6:98:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:19:101:20 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:25:101:26 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:102:6:102:14 | ConditionalBranch: x_1_and_2 | Conditional branch instruction ConditionalBranch: x_1_and_2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| try_except.c:35:13:35:13 | ConditionalBranch: b | Conditional branch instruction ConditionalBranch: b with non-Boolean condition, in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) |
missingCppType

View File

@@ -30,5 +30,41 @@ thisArgumentIsNonPointer
| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) |
nonUniqueIRVariable
nonBooleanOperand
| ir.c:85:7:85:8 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:86:6:86:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:88:11:88:13 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:89:6:89:6 | ConditionalBranch: y | Conditional branch instruction ConditionalBranch: y with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:90:6:90:7 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:6:92:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:92:12:92:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:6:93:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:93:13:93:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:6:94:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:94:12:94:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:6:95:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:95:13:95:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:6:96:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:96:12:96:13 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:6:97:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:97:13:97:14 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:6:98:7 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:98:12:98:14 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:6:99:8 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:99:13:99:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:19:101:20 | ConditionalBranch: x1 | Conditional branch instruction ConditionalBranch: x1 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:101:25:101:26 | ConditionalBranch: x2 | Conditional branch instruction ConditionalBranch: x2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:102:6:102:14 | ConditionalBranch: x_1_and_2 | Conditional branch instruction ConditionalBranch: x_1_and_2 with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | ConditionalBranch: ! ... | Conditional branch instruction ConditionalBranch: ! ... with non-Boolean condition, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| ir.c:103:6:103:15 | LogicalNot: ! ... | Logical Not instruction LogicalNot: ! ... with non-Boolean operand, in function '$@'. | ir.c:84:6:84:28 | void branch_on_integral_in_c(int, int) | void branch_on_integral_in_c(int, int) |
| try_except.c:35:13:35:13 | ConditionalBranch: b | Conditional branch instruction ConditionalBranch: b with non-Boolean condition, in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) |
missingCppType