mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
C++: Add sizeof VLA IR test cases
This commit is contained in:
@@ -24581,6 +24581,186 @@ ir.cpp:
|
||||
# 2776| Value = [CStyleCast] 42
|
||||
# 2776| ValueCategory = prvalue
|
||||
# 2777| getStmt(2): [ReturnStmt] return ...
|
||||
# 2779| [TopLevelFunction] void vla_sizeof_test(int, size_t, char)
|
||||
# 2779| <params>:
|
||||
# 2779| getParameter(0): [Parameter] len1
|
||||
# 2779| Type = [IntType] int
|
||||
# 2779| getParameter(1): [Parameter] len2
|
||||
# 2779| Type = [CTypedefType,Size_t] size_t
|
||||
# 2779| getParameter(2): [Parameter] len3
|
||||
# 2779| Type = [PlainCharType] char
|
||||
# 2780| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 2781| getStmt(0): [DeclStmt] declaration
|
||||
# 2781| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1
|
||||
# 2781| Type = [ArrayType] char[]
|
||||
# 2781| getStmt(1): [VlaDimensionStmt] VLA dimension size
|
||||
# 2781| getDimensionExpr(): [VariableAccess] len1
|
||||
# 2781| Type = [IntType] int
|
||||
# 2781| ValueCategory = prvalue(load)
|
||||
# 2781| getStmt(2): [VlaDeclStmt] VLA declaration
|
||||
# 2782| getStmt(3): [DeclStmt] declaration
|
||||
# 2782| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
|
||||
# 2782| Type = [CTypedefType,Size_t] size_t
|
||||
# 2782| getVariable().getInitializer(): [Initializer] initializer for x
|
||||
# 2782| getExpr(): [SizeofExprOperator] sizeof(<expr>)
|
||||
# 2782| Type = [LongType] unsigned long
|
||||
# 2782| ValueCategory = prvalue
|
||||
# 2782| getExprOperand(): [VariableAccess] tmp1
|
||||
# 2782| Type = [ArrayType] char[]
|
||||
# 2782| ValueCategory = lvalue
|
||||
# 2782| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
|
||||
# 2782| Type = [ArrayType] char[]
|
||||
# 2782| ValueCategory = lvalue
|
||||
# 2783| getStmt(4): [DeclStmt] declaration
|
||||
# 2783| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp2
|
||||
# 2783| Type = [ArrayType] int[][]
|
||||
# 2783| getStmt(5): [VlaDimensionStmt] VLA dimension size
|
||||
# 2783| getDimensionExpr(): [VariableAccess] len1
|
||||
# 2783| Type = [IntType] int
|
||||
# 2783| ValueCategory = prvalue(load)
|
||||
# 2783| getStmt(6): [VlaDimensionStmt] VLA dimension size
|
||||
# 2783| getDimensionExpr(): [VariableAccess] len2
|
||||
# 2783| Type = [CTypedefType,Size_t] size_t
|
||||
# 2783| ValueCategory = prvalue(load)
|
||||
# 2783| getStmt(7): [VlaDeclStmt] VLA declaration
|
||||
# 2784| getStmt(8): [DeclStmt] declaration
|
||||
# 2784| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
|
||||
# 2784| Type = [CTypedefType,Size_t] size_t
|
||||
# 2784| getVariable().getInitializer(): [Initializer] initializer for y
|
||||
# 2784| getExpr(): [SizeofExprOperator] sizeof(<expr>)
|
||||
# 2784| Type = [LongType] unsigned long
|
||||
# 2784| ValueCategory = prvalue
|
||||
# 2784| getExprOperand(): [VariableAccess] tmp2
|
||||
# 2784| Type = [ArrayType] int[][]
|
||||
# 2784| ValueCategory = lvalue
|
||||
# 2784| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
|
||||
# 2784| Type = [ArrayType] int[][]
|
||||
# 2784| ValueCategory = lvalue
|
||||
# 2785| getStmt(9): [DeclStmt] declaration
|
||||
# 2785| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
|
||||
# 2785| Type = [CTypedefType,Size_t] size_t
|
||||
# 2785| getVariable().getInitializer(): [Initializer] initializer for z
|
||||
# 2785| getExpr(): [SizeofExprOperator] sizeof(<expr>)
|
||||
# 2785| Type = [LongType] unsigned long
|
||||
# 2785| ValueCategory = prvalue
|
||||
# 2785| getExprOperand(): [PointerDereferenceExpr] * ...
|
||||
# 2785| Type = [ArrayType] int[]
|
||||
# 2785| ValueCategory = lvalue
|
||||
# 2785| getOperand(): [VariableAccess] tmp2
|
||||
# 2785| Type = [ArrayType] int[][]
|
||||
# 2785| ValueCategory = lvalue
|
||||
# 2785| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
|
||||
# 2785| Type = [PointerType] int(*)[]
|
||||
# 2785| ValueCategory = prvalue
|
||||
# 2785| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
|
||||
# 2785| Type = [ArrayType] int[]
|
||||
# 2785| ValueCategory = lvalue
|
||||
# 2786| getStmt(10): [DeclStmt] declaration
|
||||
# 2786| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp3
|
||||
# 2786| Type = [ArrayType] int[][][]
|
||||
# 2786| getStmt(11): [VlaDimensionStmt] VLA dimension size
|
||||
# 2786| getDimensionExpr(): [VariableAccess] len1
|
||||
# 2786| Type = [IntType] int
|
||||
# 2786| ValueCategory = prvalue(load)
|
||||
# 2786| getStmt(12): [VlaDimensionStmt] VLA dimension size
|
||||
# 2786| getDimensionExpr(): [VariableAccess] len2
|
||||
# 2786| Type = [CTypedefType,Size_t] size_t
|
||||
# 2786| ValueCategory = prvalue(load)
|
||||
# 2786| getStmt(13): [VlaDimensionStmt] VLA dimension size
|
||||
# 2786| getDimensionExpr(): [VariableAccess] len3
|
||||
# 2786| Type = [PlainCharType] char
|
||||
# 2786| ValueCategory = prvalue(load)
|
||||
# 2786| getStmt(14): [VlaDeclStmt] VLA declaration
|
||||
# 2787| getStmt(15): [DeclStmt] declaration
|
||||
# 2787| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w
|
||||
# 2787| Type = [CTypedefType,Size_t] size_t
|
||||
# 2787| getVariable().getInitializer(): [Initializer] initializer for w
|
||||
# 2787| getExpr(): [SizeofExprOperator] sizeof(<expr>)
|
||||
# 2787| Type = [LongType] unsigned long
|
||||
# 2787| ValueCategory = prvalue
|
||||
# 2787| getExprOperand(): [VariableAccess] tmp3
|
||||
# 2787| Type = [ArrayType] int[][][]
|
||||
# 2787| ValueCategory = lvalue
|
||||
# 2787| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
|
||||
# 2787| Type = [ArrayType] int[][][]
|
||||
# 2787| ValueCategory = lvalue
|
||||
# 2788| getStmt(16): [DeclStmt] declaration
|
||||
# 2788| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v
|
||||
# 2788| Type = [CTypedefType,Size_t] size_t
|
||||
# 2788| getVariable().getInitializer(): [Initializer] initializer for v
|
||||
# 2788| getExpr(): [SizeofExprOperator] sizeof(<expr>)
|
||||
# 2788| Type = [LongType] unsigned long
|
||||
# 2788| ValueCategory = prvalue
|
||||
# 2788| getExprOperand(): [PointerDereferenceExpr] * ...
|
||||
# 2788| Type = [ArrayType] int[][]
|
||||
# 2788| ValueCategory = lvalue
|
||||
# 2788| getOperand(): [VariableAccess] tmp3
|
||||
# 2788| Type = [ArrayType] int[][][]
|
||||
# 2788| ValueCategory = lvalue
|
||||
# 2788| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
|
||||
# 2788| Type = [PointerType] int(*)[][]
|
||||
# 2788| ValueCategory = prvalue
|
||||
# 2788| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
|
||||
# 2788| Type = [ArrayType] int[][]
|
||||
# 2788| ValueCategory = lvalue
|
||||
# 2789| getStmt(17): [DeclStmt] declaration
|
||||
# 2789| getDeclarationEntry(0): [VariableDeclarationEntry] definition of u
|
||||
# 2789| Type = [CTypedefType,Size_t] size_t
|
||||
# 2789| getVariable().getInitializer(): [Initializer] initializer for u
|
||||
# 2789| getExpr(): [SizeofExprOperator] sizeof(<expr>)
|
||||
# 2789| Type = [LongType] unsigned long
|
||||
# 2789| ValueCategory = prvalue
|
||||
# 2789| getExprOperand(): [PointerDereferenceExpr] * ...
|
||||
# 2789| Type = [ArrayType] int[]
|
||||
# 2789| ValueCategory = lvalue
|
||||
# 2789| getOperand(): [PointerDereferenceExpr] * ...
|
||||
# 2789| Type = [ArrayType] int[][]
|
||||
# 2789| ValueCategory = lvalue
|
||||
# 2789| getOperand(): [VariableAccess] tmp3
|
||||
# 2789| Type = [ArrayType] int[][][]
|
||||
# 2789| ValueCategory = lvalue
|
||||
# 2789| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
|
||||
# 2789| Type = [PointerType] int(*)[][]
|
||||
# 2789| ValueCategory = prvalue
|
||||
# 2789| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
|
||||
# 2789| Type = [PointerType] int(*)[]
|
||||
# 2789| ValueCategory = prvalue
|
||||
# 2789| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
|
||||
# 2789| Type = [ArrayType] int[]
|
||||
# 2789| ValueCategory = lvalue
|
||||
# 2790| getStmt(18): [DeclStmt] declaration
|
||||
# 2790| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t
|
||||
# 2790| Type = [CTypedefType,Size_t] size_t
|
||||
# 2790| getVariable().getInitializer(): [Initializer] initializer for t
|
||||
# 2790| getExpr(): [SizeofExprOperator] sizeof(<expr>)
|
||||
# 2790| Type = [LongType] unsigned long
|
||||
# 2790| Value = [SizeofExprOperator] 4
|
||||
# 2790| ValueCategory = prvalue
|
||||
# 2790| getExprOperand(): [PointerDereferenceExpr] * ...
|
||||
# 2790| Type = [IntType] int
|
||||
# 2790| ValueCategory = lvalue
|
||||
# 2790| getOperand(): [PointerDereferenceExpr] * ...
|
||||
# 2790| Type = [ArrayType] int[]
|
||||
# 2790| ValueCategory = lvalue
|
||||
# 2790| getOperand(): [PointerDereferenceExpr] * ...
|
||||
# 2790| Type = [ArrayType] int[][]
|
||||
# 2790| ValueCategory = lvalue
|
||||
# 2790| getOperand(): [VariableAccess] tmp3
|
||||
# 2790| Type = [ArrayType] int[][][]
|
||||
# 2790| ValueCategory = lvalue
|
||||
# 2790| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
|
||||
# 2790| Type = [PointerType] int(*)[][]
|
||||
# 2790| ValueCategory = prvalue
|
||||
# 2790| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
|
||||
# 2790| Type = [PointerType] int(*)[]
|
||||
# 2790| ValueCategory = prvalue
|
||||
# 2790| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
|
||||
# 2790| Type = [IntPointerType] int *
|
||||
# 2790| ValueCategory = prvalue
|
||||
# 2790| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
|
||||
# 2790| Type = [IntType] int
|
||||
# 2790| ValueCategory = lvalue
|
||||
# 2791| getStmt(19): [ReturnStmt] return ...
|
||||
ir23.cpp:
|
||||
# 1| [TopLevelFunction] bool consteval_1()
|
||||
# 1| <params>:
|
||||
|
||||
@@ -20430,6 +20430,25 @@ ir.cpp:
|
||||
# 2774| v2774_6(void) = AliasedUse : ~m2776_6
|
||||
# 2774| v2774_7(void) = ExitFunction :
|
||||
|
||||
# 2779| void vla_sizeof_test(int, size_t, char)
|
||||
# 2779| Block 0
|
||||
# 2779| v2779_1(void) = EnterFunction :
|
||||
# 2779| m2779_2(unknown) = AliasedDefinition :
|
||||
# 2779| m2779_3(unknown) = InitializeNonLocal :
|
||||
# 2779| m2779_4(unknown) = Chi : total:m2779_2, partial:m2779_3
|
||||
# 2779| r2779_5(glval<int>) = VariableAddress[len1] :
|
||||
# 2779| m2779_6(int) = InitializeParameter[len1] : &:r2779_5
|
||||
# 2779| r2779_7(glval<unsigned long>) = VariableAddress[len2] :
|
||||
# 2779| m2779_8(unsigned long) = InitializeParameter[len2] : &:r2779_7
|
||||
# 2779| r2779_9(glval<char>) = VariableAddress[len3] :
|
||||
# 2779| m2779_10(char) = InitializeParameter[len3] : &:r2779_9
|
||||
# 2781| r2781_1(glval<char[]>) = VariableAddress[tmp1] :
|
||||
# 2781| m2781_2(char[]) = Uninitialized[tmp1] : &:r2781_1
|
||||
# 2781| r2781_3(glval<int>) = VariableAddress[len1] :
|
||||
# 2781| r2781_4(int) = Load[len1] : &:r2781_3, m2779_6
|
||||
# 2781| v2781_5(void) = NoOp :
|
||||
# 2782| r2782_1(glval<unsigned long>) = VariableAddress[x] :
|
||||
|
||||
ir23.cpp:
|
||||
# 1| bool consteval_1()
|
||||
# 1| Block 0
|
||||
|
||||
@@ -6,6 +6,7 @@ missingOperandType
|
||||
duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:2782:10:2782:10 | VariableAddress: definition of x | Instruction 'VariableAddress: definition of x' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
|
||||
@@ -6,6 +6,7 @@ missingOperandType
|
||||
duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:2782:10:2782:10 | VariableAddress: definition of x | Instruction 'VariableAddress: definition of x' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
|
||||
@@ -2776,4 +2776,18 @@ void test_allocation_with_initializer() {
|
||||
long* p2 = new long(42);
|
||||
}
|
||||
|
||||
void vla_sizeof_test(int len1, size_t len2, char len3)
|
||||
{
|
||||
char tmp1[len1];
|
||||
size_t x = sizeof(tmp1);
|
||||
int tmp2[len1][len2];
|
||||
size_t y = sizeof(tmp2);
|
||||
size_t z = sizeof(*tmp2);
|
||||
int tmp3[len1][len2][len3];
|
||||
size_t w = sizeof(tmp3);
|
||||
size_t v = sizeof(*tmp3);
|
||||
size_t u = sizeof(**tmp3);
|
||||
size_t t = sizeof(***tmp3);
|
||||
}
|
||||
|
||||
// semmle-extractor-options: -std=c++20 --clang
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
missingOperand
|
||||
| ir.cpp:2782:14:2782:25 | Store: sizeof(<expr>) | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2784:14:2784:25 | Store: sizeof(<expr>) | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2785:14:2785:26 | Store: sizeof(<expr>) | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2787:14:2787:25 | Store: sizeof(<expr>) | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2788:14:2788:26 | Store: sizeof(<expr>) | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2789:14:2789:27 | Store: sizeof(<expr>) | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
unexpectedOperand
|
||||
duplicateOperand
|
||||
missingPhiOperand
|
||||
@@ -6,6 +12,18 @@ missingOperandType
|
||||
duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:2782:10:2782:10 | VariableAddress: definition of x | Instruction 'VariableAddress: definition of x' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2782:21:2782:24 | VariableAddress: tmp1 | Instruction 'VariableAddress: tmp1' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2784:10:2784:10 | VariableAddress: definition of y | Instruction 'VariableAddress: definition of y' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2784:21:2784:24 | VariableAddress: tmp2 | Instruction 'VariableAddress: tmp2' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2785:10:2785:10 | VariableAddress: definition of z | Instruction 'VariableAddress: definition of z' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2785:21:2785:25 | CopyValue: * ... | Instruction 'CopyValue: * ...' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2787:10:2787:10 | VariableAddress: definition of w | Instruction 'VariableAddress: definition of w' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2787:21:2787:24 | VariableAddress: tmp3 | Instruction 'VariableAddress: tmp3' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2788:10:2788:10 | VariableAddress: definition of v | Instruction 'VariableAddress: definition of v' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2788:21:2788:25 | CopyValue: * ... | Instruction 'CopyValue: * ...' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2789:10:2789:10 | VariableAddress: definition of u | Instruction 'VariableAddress: definition of u' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2789:21:2789:26 | CopyValue: * ... | Instruction 'CopyValue: * ...' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
@@ -21,6 +39,12 @@ lostReachability
|
||||
backEdgeCountMismatch
|
||||
useNotDominatedByDefinition
|
||||
| ir.cpp:1535:8:1535:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1535:8:1535:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() |
|
||||
| ir.cpp:2782:10:2782:10 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2784:10:2784:10 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2785:10:2785:10 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2787:10:2787:10 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2788:10:2788:10 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
| ir.cpp:2789:10:2789:10 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
switchInstructionWithoutDefaultEdge
|
||||
notMarkedAsConflated
|
||||
wronglyMarkedAsConflated
|
||||
|
||||
@@ -18577,6 +18577,96 @@ ir.cpp:
|
||||
# 2774| v2774_5(void) = AliasedUse : ~m?
|
||||
# 2774| v2774_6(void) = ExitFunction :
|
||||
|
||||
# 2779| void vla_sizeof_test(int, size_t, char)
|
||||
# 2779| Block 0
|
||||
# 2779| v2779_1(void) = EnterFunction :
|
||||
# 2779| mu2779_2(unknown) = AliasedDefinition :
|
||||
# 2779| mu2779_3(unknown) = InitializeNonLocal :
|
||||
# 2779| r2779_4(glval<int>) = VariableAddress[len1] :
|
||||
# 2779| mu2779_5(int) = InitializeParameter[len1] : &:r2779_4
|
||||
# 2779| r2779_6(glval<unsigned long>) = VariableAddress[len2] :
|
||||
# 2779| mu2779_7(unsigned long) = InitializeParameter[len2] : &:r2779_6
|
||||
# 2779| r2779_8(glval<char>) = VariableAddress[len3] :
|
||||
# 2779| mu2779_9(char) = InitializeParameter[len3] : &:r2779_8
|
||||
# 2781| r2781_1(glval<char[]>) = VariableAddress[tmp1] :
|
||||
# 2781| mu2781_2(char[]) = Uninitialized[tmp1] : &:r2781_1
|
||||
# 2781| r2781_3(glval<int>) = VariableAddress[len1] :
|
||||
# 2781| r2781_4(int) = Load[len1] : &:r2781_3, ~m?
|
||||
# 2781| v2781_5(void) = NoOp :
|
||||
# 2782| r2782_1(glval<unsigned long>) = VariableAddress[x] :
|
||||
|
||||
# 2782| Block 1
|
||||
# 2782| r2782_2(glval<char[]>) = VariableAddress[tmp1] :
|
||||
|
||||
# 2784| Block 1
|
||||
# 2784| r2784_1(glval<int[][]>) = VariableAddress[tmp2] :
|
||||
|
||||
# 2787| Block 1
|
||||
# 2787| r2787_1(glval<int[][][]>) = VariableAddress[tmp3] :
|
||||
|
||||
# 2785| Block 4
|
||||
# 2785| r2785_1(glval<int[][]>) = VariableAddress[tmp2] :
|
||||
# 2785| r2785_2(int(*)[]) = Convert : r2785_1
|
||||
# 2785| r2785_3(glval<int[]>) = CopyValue : r2785_2
|
||||
|
||||
# 2788| Block 4
|
||||
# 2788| r2788_1(glval<int[][][]>) = VariableAddress[tmp3] :
|
||||
# 2788| r2788_2(int(*)[][]) = Convert : r2788_1
|
||||
# 2788| r2788_3(glval<int[][]>) = CopyValue : r2788_2
|
||||
|
||||
# 2789| Block 6
|
||||
# 2789| r2789_1(glval<int[][][]>) = VariableAddress[tmp3] :
|
||||
# 2789| r2789_2(int(*)[][]) = Convert : r2789_1
|
||||
# 2789| r2789_3(glval<int[][]>) = CopyValue : r2789_2
|
||||
# 2789| r2789_4(int(*)[]) = Convert : r2789_3
|
||||
# 2789| r2789_5(glval<int[]>) = CopyValue : r2789_4
|
||||
|
||||
# 2782| Block 7
|
||||
# 2782| mu2782_3(unsigned long) = Store[x] : &:r2782_1
|
||||
# 2783| r2783_1(glval<int[][]>) = VariableAddress[tmp2] :
|
||||
# 2783| mu2783_2(int[][]) = Uninitialized[tmp2] : &:r2783_1
|
||||
# 2783| r2783_3(glval<int>) = VariableAddress[len1] :
|
||||
# 2783| r2783_4(int) = Load[len1] : &:r2783_3, ~m?
|
||||
# 2783| r2783_5(glval<unsigned long>) = VariableAddress[len2] :
|
||||
# 2783| r2783_6(unsigned long) = Load[len2] : &:r2783_5, ~m?
|
||||
# 2783| v2783_7(void) = NoOp :
|
||||
# 2784| r2784_2(glval<unsigned long>) = VariableAddress[y] :
|
||||
|
||||
# 2784| Block 8
|
||||
# 2784| mu2784_3(unsigned long) = Store[y] : &:r2784_2
|
||||
# 2785| r2785_4(glval<unsigned long>) = VariableAddress[z] :
|
||||
|
||||
# 2785| Block 9
|
||||
# 2785| mu2785_5(unsigned long) = Store[z] : &:r2785_4
|
||||
# 2786| r2786_1(glval<int[][][]>) = VariableAddress[tmp3] :
|
||||
# 2786| mu2786_2(int[][][]) = Uninitialized[tmp3] : &:r2786_1
|
||||
# 2786| r2786_3(glval<int>) = VariableAddress[len1] :
|
||||
# 2786| r2786_4(int) = Load[len1] : &:r2786_3, ~m?
|
||||
# 2786| r2786_5(glval<unsigned long>) = VariableAddress[len2] :
|
||||
# 2786| r2786_6(unsigned long) = Load[len2] : &:r2786_5, ~m?
|
||||
# 2786| r2786_7(glval<char>) = VariableAddress[len3] :
|
||||
# 2786| r2786_8(char) = Load[len3] : &:r2786_7, ~m?
|
||||
# 2786| v2786_9(void) = NoOp :
|
||||
# 2787| r2787_2(glval<unsigned long>) = VariableAddress[w] :
|
||||
|
||||
# 2787| Block 10
|
||||
# 2787| mu2787_3(unsigned long) = Store[w] : &:r2787_2
|
||||
# 2788| r2788_4(glval<unsigned long>) = VariableAddress[v] :
|
||||
|
||||
# 2788| Block 11
|
||||
# 2788| mu2788_5(unsigned long) = Store[v] : &:r2788_4
|
||||
# 2789| r2789_6(glval<unsigned long>) = VariableAddress[u] :
|
||||
|
||||
# 2789| Block 12
|
||||
# 2789| mu2789_7(unsigned long) = Store[u] : &:r2789_6
|
||||
# 2790| r2790_1(glval<unsigned long>) = VariableAddress[t] :
|
||||
# 2790| r2790_2(unsigned long) = Constant[4] :
|
||||
# 2790| mu2790_3(unsigned long) = Store[t] : &:r2790_1, r2790_2
|
||||
# 2791| v2791_1(void) = NoOp :
|
||||
# 2779| v2779_10(void) = ReturnVoid :
|
||||
# 2779| v2779_11(void) = AliasedUse : ~m?
|
||||
# 2779| v2779_12(void) = ExitFunction :
|
||||
|
||||
ir23.cpp:
|
||||
# 1| bool consteval_1()
|
||||
# 1| Block 0
|
||||
|
||||
@@ -6,6 +6,7 @@ missingOperandType
|
||||
duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:2782:10:2782:10 | VariableAddress: definition of x | Instruction 'VariableAddress: definition of x' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
|
||||
@@ -6,6 +6,7 @@ missingOperandType
|
||||
duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:2782:10:2782:10 | VariableAddress: definition of x | Instruction 'VariableAddress: definition of x' has no successors in function '$@'. | ir.cpp:2779:6:2779:20 | void vla_sizeof_test(int, size_t, char) | void vla_sizeof_test(int, size_t, char) |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
|
||||
Reference in New Issue
Block a user