C++: Accept test output

This commit is contained in:
Mathias Vorreiter Pedersen
2020-03-31 17:10:33 +02:00
parent 291df97cd9
commit 97061716f9
6 changed files with 112 additions and 98 deletions

View File

@@ -4731,85 +4731,93 @@ ir.cpp:
# 959| void OperatorNewArray(int)
# 959| Block 0
# 959| v959_1(void) = EnterFunction :
# 959| mu959_2(unknown) = AliasedDefinition :
# 959| mu959_3(unknown) = InitializeNonLocal :
# 959| mu959_4(unknown) = UnmodeledDefinition :
# 959| r959_5(glval<int>) = VariableAddress[n] :
# 959| mu959_6(int) = InitializeParameter[n] : &:r959_5
# 960| r960_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 960| r960_2(unsigned long) = Constant[40] :
# 960| r960_3(void *) = Call : func:r960_1, 0:r960_2
# 960| mu960_4(unknown) = ^CallSideEffect : ~mu959_4
# 960| r960_5(int *) = Convert : r960_3
# 961| r961_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 961| r961_2(glval<int>) = VariableAddress[n] :
# 961| r961_3(int) = Load : &:r961_2, ~mu959_4
# 961| r961_4(unsigned long) = Convert : r961_3
# 961| r961_5(unsigned long) = Constant[4] :
# 961| r961_6(unsigned long) = Mul : r961_4, r961_5
# 961| r961_7(void *) = Call : func:r961_1, 0:r961_6
# 961| mu961_8(unknown) = ^CallSideEffect : ~mu959_4
# 961| r961_9(int *) = Convert : r961_7
# 962| r962_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 962| r962_2(glval<int>) = VariableAddress[n] :
# 962| r962_3(int) = Load : &:r962_2, ~mu959_4
# 962| r962_4(unsigned long) = Convert : r962_3
# 962| r962_5(unsigned long) = Constant[4] :
# 962| r962_6(unsigned long) = Mul : r962_4, r962_5
# 962| r962_7(float) = Constant[1.0] :
# 962| r962_8(void *) = Call : func:r962_1, 0:r962_6, 1:r962_7
# 962| mu962_9(unknown) = ^CallSideEffect : ~mu959_4
# 962| r962_10(int *) = Convert : r962_8
# 963| r963_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 963| r963_2(glval<int>) = VariableAddress[n] :
# 963| r963_3(int) = Load : &:r963_2, ~mu959_4
# 963| r963_4(unsigned long) = Convert : r963_3
# 963| r963_5(unsigned long) = Constant[8] :
# 963| r963_6(unsigned long) = Mul : r963_4, r963_5
# 963| r963_7(void *) = Call : func:r963_1, 0:r963_6
# 963| mu963_8(unknown) = ^CallSideEffect : ~mu959_4
# 963| r963_9(String *) = Convert : r963_7
# 964| r964_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 964| r964_2(glval<int>) = VariableAddress[n] :
# 964| r964_3(int) = Load : &:r964_2, ~mu959_4
# 964| r964_4(unsigned long) = Convert : r964_3
# 964| r964_5(unsigned long) = Constant[256] :
# 964| r964_6(unsigned long) = Mul : r964_4, r964_5
# 964| r964_7(align_val_t) = Constant[128] :
# 964| r964_8(void *) = Call : func:r964_1, 0:r964_6, 1:r964_7
# 964| mu964_9(unknown) = ^CallSideEffect : ~mu959_4
# 964| r964_10(Overaligned *) = Convert : r964_8
# 965| r965_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 965| r965_2(unsigned long) = Constant[2560] :
# 965| r965_3(align_val_t) = Constant[128] :
# 965| r965_4(float) = Constant[1.0] :
# 965| r965_5(void *) = Call : func:r965_1, 0:r965_2, 1:r965_3, 2:r965_4
# 965| mu965_6(unknown) = ^CallSideEffect : ~mu959_4
# 965| r965_7(Overaligned *) = Convert : r965_5
# 966| r966_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 966| r966_2(glval<int>) = VariableAddress[n] :
# 966| r966_3(int) = Load : &:r966_2, ~mu959_4
# 966| r966_4(unsigned long) = Convert : r966_3
# 966| r966_5(unsigned long) = Constant[1] :
# 966| r966_6(unsigned long) = Mul : r966_4, r966_5
# 966| r966_7(void *) = Call : func:r966_1, 0:r966_6
# 966| mu966_8(unknown) = ^CallSideEffect : ~mu959_4
# 966| r966_9(DefaultCtorWithDefaultParam *) = Convert : r966_7
# 967| r967_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 967| r967_2(glval<int>) = VariableAddress[n] :
# 967| r967_3(int) = Load : &:r967_2, ~mu959_4
# 967| r967_4(unsigned long) = Convert : r967_3
# 967| r967_5(unsigned long) = Constant[4] :
# 967| r967_6(unsigned long) = Mul : r967_4, r967_5
# 967| r967_7(void *) = Call : func:r967_1, 0:r967_6
# 967| mu967_8(unknown) = ^CallSideEffect : ~mu959_4
# 967| r967_9(int *) = Convert : r967_7
# 968| v968_1(void) = NoOp :
# 959| v959_7(void) = ReturnVoid :
# 959| v959_8(void) = UnmodeledUse : mu*
# 959| v959_9(void) = AliasedUse : ~mu959_4
# 959| v959_10(void) = ExitFunction :
# 959| v959_1(void) = EnterFunction :
# 959| mu959_2(unknown) = AliasedDefinition :
# 959| mu959_3(unknown) = InitializeNonLocal :
# 959| mu959_4(unknown) = UnmodeledDefinition :
# 959| r959_5(glval<int>) = VariableAddress[n] :
# 959| mu959_6(int) = InitializeParameter[n] : &:r959_5
# 960| r960_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 960| r960_2(unsigned long) = Constant[40] :
# 960| r960_3(void *) = Call : func:r960_1, 0:r960_2
# 960| mu960_4(unknown) = ^CallSideEffect : ~mu959_4
# 960| mu960_5(unknown) = ^InitializeDynamicAllocation : &:r960_3
# 960| r960_6(int *) = Convert : r960_3
# 961| r961_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 961| r961_2(glval<int>) = VariableAddress[n] :
# 961| r961_3(int) = Load : &:r961_2, ~mu959_4
# 961| r961_4(unsigned long) = Convert : r961_3
# 961| r961_5(unsigned long) = Constant[4] :
# 961| r961_6(unsigned long) = Mul : r961_4, r961_5
# 961| r961_7(void *) = Call : func:r961_1, 0:r961_6
# 961| mu961_8(unknown) = ^CallSideEffect : ~mu959_4
# 961| mu961_9(unknown) = ^InitializeDynamicAllocation : &:r961_7
# 961| r961_10(int *) = Convert : r961_7
# 962| r962_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 962| r962_2(glval<int>) = VariableAddress[n] :
# 962| r962_3(int) = Load : &:r962_2, ~mu959_4
# 962| r962_4(unsigned long) = Convert : r962_3
# 962| r962_5(unsigned long) = Constant[4] :
# 962| r962_6(unsigned long) = Mul : r962_4, r962_5
# 962| r962_7(float) = Constant[1.0] :
# 962| r962_8(void *) = Call : func:r962_1, 0:r962_6, 1:r962_7
# 962| mu962_9(unknown) = ^CallSideEffect : ~mu959_4
# 962| mu962_10(unknown) = ^InitializeDynamicAllocation : &:r962_8
# 962| r962_11(int *) = Convert : r962_8
# 963| r963_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 963| r963_2(glval<int>) = VariableAddress[n] :
# 963| r963_3(int) = Load : &:r963_2, ~mu959_4
# 963| r963_4(unsigned long) = Convert : r963_3
# 963| r963_5(unsigned long) = Constant[8] :
# 963| r963_6(unsigned long) = Mul : r963_4, r963_5
# 963| r963_7(void *) = Call : func:r963_1, 0:r963_6
# 963| mu963_8(unknown) = ^CallSideEffect : ~mu959_4
# 963| mu963_9(unknown) = ^InitializeDynamicAllocation : &:r963_7
# 963| r963_10(String *) = Convert : r963_7
# 964| r964_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 964| r964_2(glval<int>) = VariableAddress[n] :
# 964| r964_3(int) = Load : &:r964_2, ~mu959_4
# 964| r964_4(unsigned long) = Convert : r964_3
# 964| r964_5(unsigned long) = Constant[256] :
# 964| r964_6(unsigned long) = Mul : r964_4, r964_5
# 964| r964_7(align_val_t) = Constant[128] :
# 964| r964_8(void *) = Call : func:r964_1, 0:r964_6, 1:r964_7
# 964| mu964_9(unknown) = ^CallSideEffect : ~mu959_4
# 964| mu964_10(unknown) = ^InitializeDynamicAllocation : &:r964_8
# 964| r964_11(Overaligned *) = Convert : r964_8
# 965| r965_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 965| r965_2(unsigned long) = Constant[2560] :
# 965| r965_3(align_val_t) = Constant[128] :
# 965| r965_4(float) = Constant[1.0] :
# 965| r965_5(void *) = Call : func:r965_1, 0:r965_2, 1:r965_3, 2:r965_4
# 965| mu965_6(unknown) = ^CallSideEffect : ~mu959_4
# 965| mu965_7(unknown) = ^InitializeDynamicAllocation : &:r965_5
# 965| r965_8(Overaligned *) = Convert : r965_5
# 966| r966_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 966| r966_2(glval<int>) = VariableAddress[n] :
# 966| r966_3(int) = Load : &:r966_2, ~mu959_4
# 966| r966_4(unsigned long) = Convert : r966_3
# 966| r966_5(unsigned long) = Constant[1] :
# 966| r966_6(unsigned long) = Mul : r966_4, r966_5
# 966| r966_7(void *) = Call : func:r966_1, 0:r966_6
# 966| mu966_8(unknown) = ^CallSideEffect : ~mu959_4
# 966| mu966_9(unknown) = ^InitializeDynamicAllocation : &:r966_7
# 966| r966_10(DefaultCtorWithDefaultParam *) = Convert : r966_7
# 967| r967_1(glval<unknown>) = FunctionAddress[operator new[]] :
# 967| r967_2(glval<int>) = VariableAddress[n] :
# 967| r967_3(int) = Load : &:r967_2, ~mu959_4
# 967| r967_4(unsigned long) = Convert : r967_3
# 967| r967_5(unsigned long) = Constant[4] :
# 967| r967_6(unsigned long) = Mul : r967_4, r967_5
# 967| r967_7(void *) = Call : func:r967_1, 0:r967_6
# 967| mu967_8(unknown) = ^CallSideEffect : ~mu959_4
# 967| mu967_9(unknown) = ^InitializeDynamicAllocation : &:r967_7
# 967| r967_10(int *) = Convert : r967_7
# 968| v968_1(void) = NoOp :
# 959| v959_7(void) = ReturnVoid :
# 959| v959_8(void) = UnmodeledUse : mu*
# 959| v959_9(void) = AliasedUse : ~mu959_4
# 959| v959_10(void) = ExitFunction :
# 970| int designatedInit()
# 970| Block 0

View File

@@ -1162,17 +1162,19 @@ ssa.cpp:
# 248| r248_8(void *) = Call : func:r248_2, 0:r248_7
# 248| m248_9(unknown) = ^CallSideEffect : ~m247_10
# 248| m248_10(unknown) = Chi : total:m247_10, partial:m248_9
# 248| r248_11(char *) = Convert : r248_8
# 248| m248_12(char *) = Store : &:r248_1, r248_11
# 248| m248_11(unknown) = ^InitializeDynamicAllocation : &:r248_8
# 248| m248_12(unknown) = Chi : total:m248_10, partial:m248_11
# 248| r248_13(char *) = Convert : r248_8
# 248| m248_14(char *) = Store : &:r248_1, r248_13
# 249| r249_1(char) = Constant[97] :
# 249| r249_2(glval<char *>) = VariableAddress[src] :
# 249| r249_3(char *) = Load : &:r249_2, m247_7
# 249| r249_4(glval<char>) = CopyValue : r249_3
# 249| m249_5(char) = Store : &:r249_4, r249_1
# 249| m249_6(unknown) = Chi : total:m248_10, partial:m249_5
# 249| m249_6(unknown) = Chi : total:m248_12, partial:m249_5
# 250| r250_1(glval<unknown>) = FunctionAddress[memcpy] :
# 250| r250_2(glval<char *>) = VariableAddress[dst] :
# 250| r250_3(char *) = Load : &:r250_2, m248_12
# 250| r250_3(char *) = Load : &:r250_2, m248_14
# 250| r250_4(void *) = Convert : r250_3
# 250| r250_5(glval<char *>) = VariableAddress[src] :
# 250| r250_6(char *) = Load : &:r250_5, m247_7
@@ -1185,7 +1187,7 @@ ssa.cpp:
# 250| m250_13(unknown) = Chi : total:m249_6, partial:m250_12
# 251| r251_1(glval<char *>) = VariableAddress[#return] :
# 251| r251_2(glval<char *>) = VariableAddress[dst] :
# 251| r251_3(char *) = Load : &:r251_2, m248_12
# 251| r251_3(char *) = Load : &:r251_2, m248_14
# 251| m251_4(char *) = Store : &:r251_1, r251_3
# 247| v247_13(void) = ReturnIndirection : &:r247_8, ~m250_13
# 247| r247_14(glval<char *>) = VariableAddress[#return] :

View File

@@ -1154,8 +1154,9 @@ ssa.cpp:
# 248| r248_8(void *) = Call : func:r248_2, 0:r248_7
# 248| m248_9(unknown) = ^CallSideEffect : ~m247_4
# 248| m248_10(unknown) = Chi : total:m247_4, partial:m248_9
# 248| r248_11(char *) = Convert : r248_8
# 248| m248_12(char *) = Store : &:r248_1, r248_11
# 248| m248_11(unknown) = ^InitializeDynamicAllocation : &:r248_8
# 248| r248_12(char *) = Convert : r248_8
# 248| m248_13(char *) = Store : &:r248_1, r248_12
# 249| r249_1(char) = Constant[97] :
# 249| r249_2(glval<char *>) = VariableAddress[src] :
# 249| r249_3(char *) = Load : &:r249_2, m247_7
@@ -1164,7 +1165,7 @@ ssa.cpp:
# 249| m249_6(unknown) = Chi : total:m247_9, partial:m249_5
# 250| r250_1(glval<unknown>) = FunctionAddress[memcpy] :
# 250| r250_2(glval<char *>) = VariableAddress[dst] :
# 250| r250_3(char *) = Load : &:r250_2, m248_12
# 250| r250_3(char *) = Load : &:r250_2, m248_13
# 250| r250_4(void *) = Convert : r250_3
# 250| r250_5(glval<char *>) = VariableAddress[src] :
# 250| r250_6(char *) = Load : &:r250_5, m247_7
@@ -1174,16 +1175,16 @@ ssa.cpp:
# 250| r250_10(void *) = Call : func:r250_1, 0:r250_4, 1:r250_7, 2:r250_9
# 250| v250_11(void) = ^SizedBufferReadSideEffect[1] : &:r250_7, r250_9, ~m249_6
# 250| m250_12(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r250_4, r250_9
# 250| m250_13(unknown) = Chi : total:m248_10, partial:m250_12
# 250| m250_13(unknown) = Chi : total:m248_11, partial:m250_12
# 251| r251_1(glval<char *>) = VariableAddress[#return] :
# 251| r251_2(glval<char *>) = VariableAddress[dst] :
# 251| r251_3(char *) = Load : &:r251_2, m248_12
# 251| r251_3(char *) = Load : &:r251_2, m248_13
# 251| m251_4(char *) = Store : &:r251_1, r251_3
# 247| v247_12(void) = ReturnIndirection : &:r247_8, m249_6
# 247| r247_13(glval<char *>) = VariableAddress[#return] :
# 247| v247_14(void) = ReturnValue : &:r247_13, m251_4
# 247| v247_15(void) = UnmodeledUse : mu*
# 247| v247_16(void) = AliasedUse : ~m250_13
# 247| v247_16(void) = AliasedUse : ~m248_10
# 247| v247_17(void) = ExitFunction :
# 254| char StringLiteralAliasing2(bool)

View File

@@ -1074,8 +1074,9 @@ ssa.cpp:
# 248| r248_7(unsigned long) = Mul : r248_5, r248_6
# 248| r248_8(void *) = Call : func:r248_2, 0:r248_7
# 248| mu248_9(unknown) = ^CallSideEffect : ~mu247_4
# 248| r248_10(char *) = Convert : r248_8
# 248| m248_11(char *) = Store : &:r248_1, r248_10
# 248| mu248_10(unknown) = ^InitializeDynamicAllocation : &:r248_8
# 248| r248_11(char *) = Convert : r248_8
# 248| m248_12(char *) = Store : &:r248_1, r248_11
# 249| r249_1(char) = Constant[97] :
# 249| r249_2(glval<char *>) = VariableAddress[src] :
# 249| r249_3(char *) = Load : &:r249_2, m247_6
@@ -1083,7 +1084,7 @@ ssa.cpp:
# 249| mu249_5(char) = Store : &:r249_4, r249_1
# 250| r250_1(glval<unknown>) = FunctionAddress[memcpy] :
# 250| r250_2(glval<char *>) = VariableAddress[dst] :
# 250| r250_3(char *) = Load : &:r250_2, m248_11
# 250| r250_3(char *) = Load : &:r250_2, m248_12
# 250| r250_4(void *) = Convert : r250_3
# 250| r250_5(glval<char *>) = VariableAddress[src] :
# 250| r250_6(char *) = Load : &:r250_5, m247_6
@@ -1095,7 +1096,7 @@ ssa.cpp:
# 250| mu250_12(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r250_4, r250_9
# 251| r251_1(glval<char *>) = VariableAddress[#return] :
# 251| r251_2(glval<char *>) = VariableAddress[dst] :
# 251| r251_3(char *) = Load : &:r251_2, m248_11
# 251| r251_3(char *) = Load : &:r251_2, m248_12
# 251| m251_4(char *) = Store : &:r251_1, r251_3
# 247| v247_11(void) = ReturnIndirection : &:r247_7, ~mu247_4
# 247| r247_12(glval<char *>) = VariableAddress[#return] :

View File

@@ -1074,8 +1074,9 @@ ssa.cpp:
# 248| r248_7(unsigned long) = Mul : r248_5, r248_6
# 248| r248_8(void *) = Call : func:r248_2, 0:r248_7
# 248| mu248_9(unknown) = ^CallSideEffect : ~mu247_4
# 248| r248_10(char *) = Convert : r248_8
# 248| m248_11(char *) = Store : &:r248_1, r248_10
# 248| mu248_10(unknown) = ^InitializeDynamicAllocation : &:r248_8
# 248| r248_11(char *) = Convert : r248_8
# 248| m248_12(char *) = Store : &:r248_1, r248_11
# 249| r249_1(char) = Constant[97] :
# 249| r249_2(glval<char *>) = VariableAddress[src] :
# 249| r249_3(char *) = Load : &:r249_2, m247_6
@@ -1083,7 +1084,7 @@ ssa.cpp:
# 249| mu249_5(char) = Store : &:r249_4, r249_1
# 250| r250_1(glval<unknown>) = FunctionAddress[memcpy] :
# 250| r250_2(glval<char *>) = VariableAddress[dst] :
# 250| r250_3(char *) = Load : &:r250_2, m248_11
# 250| r250_3(char *) = Load : &:r250_2, m248_12
# 250| r250_4(void *) = Convert : r250_3
# 250| r250_5(glval<char *>) = VariableAddress[src] :
# 250| r250_6(char *) = Load : &:r250_5, m247_6
@@ -1095,7 +1096,7 @@ ssa.cpp:
# 250| mu250_12(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r250_4, r250_9
# 251| r251_1(glval<char *>) = VariableAddress[#return] :
# 251| r251_2(glval<char *>) = VariableAddress[dst] :
# 251| r251_3(char *) = Load : &:r251_2, m248_11
# 251| r251_3(char *) = Load : &:r251_2, m248_12
# 251| m251_4(char *) = Store : &:r251_1, r251_3
# 247| v247_11(void) = ReturnIndirection : &:r247_7, ~mu247_4
# 247| r247_12(glval<char *>) = VariableAddress[#return] :

View File

@@ -49,6 +49,7 @@ missingOperandType
duplicateChiOperand
sideEffectWithoutPrimary
instructionWithoutSuccessor
| CPP-309.cpp:7:5:7:20 | InitializeDynamicAllocation: new[] |
| VacuousDestructorCall.cpp:2:29:2:29 | InitializeIndirection: y |
| VacuousDestructorCall.cpp:3:3:3:3 | VariableAddress: x |
| VacuousDestructorCall.cpp:4:3:4:3 | Load: y |