C++: add test for string global var inits in IR

This commit is contained in:
Robert Marsh
2022-03-30 13:38:25 -04:00
parent fb0a848e5a
commit e01799827a
7 changed files with 24 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ sideEffectWithoutPrimary
instructionWithoutSuccessor
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
| ir.cpp:1709:7:1709:19 | VariableAddress: global_string | Instruction 'VariableAddress: global_string' has no successors in function '$@'. | ir.cpp:1709:7:1709:19 | char* global_string | char* global_string |
ambiguousSuccessors
unexplainedLoop
unnecessaryPhiInstruction

View File

@@ -8,6 +8,7 @@ sideEffectWithoutPrimary
instructionWithoutSuccessor
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
| ir.cpp:1709:7:1709:19 | VariableAddress: global_string | Instruction 'VariableAddress: global_string' has no successors in function '$@'. | ir.cpp:1709:7:1709:19 | char* global_string | char* global_string |
ambiguousSuccessors
unexplainedLoop
unnecessaryPhiInstruction

View File

@@ -1706,4 +1706,6 @@ constructor_only global_4(1);
constructor_only global_5 = constructor_only(2);
char *global_string = "global string";
// semmle-extractor-options: -std=c++17 --clang

View File

@@ -15,6 +15,8 @@ instructionWithoutSuccessor
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
| ir.cpp:1709:7:1709:19 | VariableAddress: global_string | Instruction 'VariableAddress: global_string' has no successors in function '$@'. | ir.cpp:1709:7:1709:19 | char* global_string | char* global_string |
| ir.cpp:1709:23:1709:37 | Convert: (char *)... | Instruction 'Convert: (char *)...' has no successors in function '$@'. | ir.cpp:1709:7:1709:19 | char* global_string | char* global_string |
ambiguousSuccessors
unexplainedLoop
unnecessaryPhiInstruction

View File

@@ -9068,6 +9068,22 @@ ir.cpp:
# 1707| v1707_10(void) = AliasedUse : ~m?
# 1707| v1707_11(void) = ExitFunction :
# 1709| char* global_string
# 1709| Block 0
# 1709| v1709_1(void) = EnterFunction :
# 1709| mu1709_2(unknown) = AliasedDefinition :
# 1709| r1709_3(glval<char *>) = VariableAddress :
# 1709| Block 1
# 1709| v1709_4(void) = ReturnVoid :
# 1709| v1709_5(void) = AliasedUse : ~m?
# 1709| v1709_6(void) = ExitFunction :
# 1709| Block 2
# 1709| r1709_7(glval<char[14]>) = StringConstant :
# 1709| r1709_8(char *) = Convert : r1709_7
# 1709| r1709_9(char *) = Convert : r1709_8
perf-regression.cpp:
# 6| void Big::Big()
# 6| Block 0

View File

@@ -8,6 +8,7 @@ sideEffectWithoutPrimary
instructionWithoutSuccessor
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
| ir.cpp:1709:7:1709:19 | VariableAddress: global_string | Instruction 'VariableAddress: global_string' has no successors in function '$@'. | ir.cpp:1709:7:1709:19 | char* global_string | char* global_string |
ambiguousSuccessors
unexplainedLoop
unnecessaryPhiInstruction

View File

@@ -8,6 +8,7 @@ sideEffectWithoutPrimary
instructionWithoutSuccessor
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
| ir.cpp:1709:7:1709:19 | VariableAddress: global_string | Instruction 'VariableAddress: global_string' has no successors in function '$@'. | ir.cpp:1709:7:1709:19 | char* global_string | char* global_string |
ambiguousSuccessors
unexplainedLoop
unnecessaryPhiInstruction