C++: Add an copy of a (slightly modified) syntax-zoo test as an IR test.

This commit is contained in:
Mathias Vorreiter Pedersen
2025-01-16 14:33:25 +00:00
parent 6ba5f3e472
commit 2076c1c51f
4 changed files with 111 additions and 0 deletions

View File

@@ -4351,6 +4351,33 @@ generic.c:
# 28| Type = [IntType] unsigned int
# 28| ValueCategory = prvalue
# 29| getStmt(2): [ReturnStmt] return ...
ir-not-microsoft.c:
# 1| [TopLevelFunction] void gnuConditionalOmittedOperand()
# 1| <params>:
# 1| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [DeclStmt] declaration
# 2| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 2| Type = [IntType] int
# 2| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j
# 2| Type = [IntType] int
# 3| getStmt(1): [ExprStmt] ExprStmt
# 3| getExpr(): [AssignExpr] ... = ...
# 3| Type = [IntType] int
# 3| ValueCategory = prvalue
# 3| getLValue(): [VariableAccess] i
# 3| Type = [IntType] int
# 3| ValueCategory = lvalue
# 3| getRValue(): [ConditionalExpr] ... ? ... : ...
# 3| Type = [IntType] int
# 3| ValueCategory = prvalue(load)
# 3| getCondition(): [VariableAccess] j
# 3| Type = [IntType] int
# 3| ValueCategory = prvalue(load)
# 3| getElse(): [Literal] 2
# 3| Type = [IntType] int
# 3| Value = [Literal] 2
# 3| ValueCategory = prvalue
# 4| getStmt(2): [ReturnStmt] return ...
ir.c:
# 5| [TopLevelFunction] int getX(MyCoords*)
# 5| <params>:

View File

@@ -3032,6 +3032,47 @@ generic.c:
# 26| v26_8(void) = AliasedUse : m26_3
# 26| v26_9(void) = ExitFunction :
ir-not-microsoft.c:
# 1| void gnuConditionalOmittedOperand()
# 1| Block 0
# 1| v1_1(void) = EnterFunction :
# 1| m1_2(unknown) = AliasedDefinition :
# 1| m1_3(unknown) = InitializeNonLocal :
# 1| m1_4(unknown) = Chi : total:m1_2, partial:m1_3
# 2| r2_1(glval<int>) = VariableAddress[i] :
# 2| m2_2(int) = Uninitialized[i] : &:r2_1
# 2| r2_3(glval<int>) = VariableAddress[j] :
# 2| m2_4(int) = Uninitialized[j] : &:r2_3
# 3| r3_1(glval<int>) = VariableAddress[j] :
# 3| r3_2(int) = Load[j] : &:r3_1, m2_4
# 3| r3_3(int) = Constant[0] :
# 3| r3_4(bool) = CompareNE : r3_2, r3_3
# 3| v3_5(void) = ConditionalBranch : r3_4
#-----| False -> Block 3
#-----| True -> Block 2
# 3| Block 1
# 3| m3_6(int) = Phi : from 2:m3_12, from 3:m3_15
# 3| r3_7(glval<int>) = VariableAddress[#temp3:9] :
# 3| r3_8(int) = Load[#temp3:9] : &:r3_7, m3_6
# 3| r3_9(glval<int>) = VariableAddress[i] :
# 3| m3_10(int) = Store[i] : &:r3_9, r3_8
# 4| v4_1(void) = NoOp :
# 1| v1_5(void) = ReturnVoid :
# 1| v1_6(void) = AliasedUse : m1_3
# 1| v1_7(void) = ExitFunction :
# 3| Block 2
# 3| r3_11(glval<int>) = VariableAddress[#temp3:9] :
# 3| m3_12(int) = Store[#temp3:9] : &:r3_11, r3_2
#-----| Goto -> Block 1
# 3| Block 3
# 3| r3_13(int) = Constant[2] :
# 3| r3_14(glval<int>) = VariableAddress[#temp3:9] :
# 3| m3_15(int) = Store[#temp3:9] : &:r3_14, r3_13
#-----| Goto -> Block 1
ir.c:
# 7| void MyCoordsTest(int)
# 7| Block 0

View File

@@ -0,0 +1,4 @@
void gnuConditionalOmittedOperand() {
int i, j;
i = j ? : 2;
}

View File

@@ -2808,6 +2808,45 @@ generic.c:
# 26| v26_7(void) = AliasedUse : ~m?
# 26| v26_8(void) = ExitFunction :
ir-not-microsoft.c:
# 1| void gnuConditionalOmittedOperand()
# 1| Block 0
# 1| v1_1(void) = EnterFunction :
# 1| mu1_2(unknown) = AliasedDefinition :
# 1| mu1_3(unknown) = InitializeNonLocal :
# 2| r2_1(glval<int>) = VariableAddress[i] :
# 2| mu2_2(int) = Uninitialized[i] : &:r2_1
# 2| r2_3(glval<int>) = VariableAddress[j] :
# 2| mu2_4(int) = Uninitialized[j] : &:r2_3
# 3| r3_1(glval<int>) = VariableAddress[j] :
# 3| r3_2(int) = Load[j] : &:r3_1, ~m?
# 3| r3_3(int) = Constant[0] :
# 3| r3_4(bool) = CompareNE : r3_2, r3_3
# 3| v3_5(void) = ConditionalBranch : r3_4
#-----| False -> Block 3
#-----| True -> Block 2
# 3| Block 1
# 3| r3_6(glval<int>) = VariableAddress[#temp3:9] :
# 3| r3_7(int) = Load[#temp3:9] : &:r3_6, ~m?
# 3| r3_8(glval<int>) = VariableAddress[i] :
# 3| mu3_9(int) = Store[i] : &:r3_8, r3_7
# 4| v4_1(void) = NoOp :
# 1| v1_4(void) = ReturnVoid :
# 1| v1_5(void) = AliasedUse : ~m?
# 1| v1_6(void) = ExitFunction :
# 3| Block 2
# 3| r3_10(glval<int>) = VariableAddress[#temp3:9] :
# 3| mu3_11(int) = Store[#temp3:9] : &:r3_10, r3_2
#-----| Goto -> Block 1
# 3| Block 3
# 3| r3_12(int) = Constant[2] :
# 3| r3_13(glval<int>) = VariableAddress[#temp3:9] :
# 3| mu3_14(int) = Store[#temp3:9] : &:r3_13, r3_12
#-----| Goto -> Block 1
ir.c:
# 7| void MyCoordsTest(int)
# 7| Block 0