mirror of
https://github.com/github/codeql.git
synced 2026-04-22 07:15:15 +02:00
C++: Add direct and default initialization subclasses for ConstructorFieldInit
This commit is contained in:
@@ -585,12 +585,15 @@ class ConstructorDelegationInit extends ConstructorBaseInit, @ctordelegatinginit
|
||||
|
||||
/**
|
||||
* An initialization of a member variable performed as part of a
|
||||
* constructor's explicit initializer list or implicit actions.
|
||||
* constructor's initializer list or by default initialization.
|
||||
*
|
||||
* In the example below, member variable `b` is being initialized by
|
||||
* constructor parameter `a`:
|
||||
* constructor parameter `a`, and `c` is initialized by default
|
||||
* initialization:
|
||||
* ```
|
||||
* struct S {
|
||||
* int b;
|
||||
* int c = 3;
|
||||
* S(int a): b(a) {}
|
||||
* } s(2);
|
||||
* ```
|
||||
@@ -616,6 +619,28 @@ class ConstructorFieldInit extends ConstructorInit, @ctorfieldinit {
|
||||
override predicate mayBeGloballyImpure() { this.getExpr().mayBeGloballyImpure() }
|
||||
}
|
||||
|
||||
/**
|
||||
* An initialization of a member variable performed as part of a
|
||||
* constructor's explicit initializer list.
|
||||
*/
|
||||
class ConstructorDirectFieldInit extends ConstructorFieldInit {
|
||||
ConstructorDirectFieldInit() { exists(this.getChild(0)) }
|
||||
|
||||
override string getAPrimaryQlClass() { result = "ConstructorDirectFieldInit" }
|
||||
}
|
||||
|
||||
/**
|
||||
* An initialization of a member variable performed by default
|
||||
* initialization.
|
||||
*/
|
||||
class ConstructorDefaultFieldInit extends ConstructorFieldInit {
|
||||
ConstructorDefaultFieldInit() {
|
||||
not exists(this.getChild(0)) and exists(this.getTarget().getInitializer())
|
||||
}
|
||||
|
||||
override string getAPrimaryQlClass() { result = "ConstructorDefaultFieldInit" }
|
||||
}
|
||||
|
||||
/**
|
||||
* A call to a destructor of a base class or field as part of a destructor's
|
||||
* compiler-generated actions.
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
| ctorinits.cpp:5:3:5:10 | NoisyInt | 0 | ConstructorFieldInit | ctorinits.cpp:5:29:5:42 | constructor init of field m_value | 1 | 0 |
|
||||
| ctorinits.cpp:13:3:13:11 | NoisyPair | 0 | ConstructorFieldInit | ctorinits.cpp:14:7:14:16 | constructor init of field m_fst | 1 | 0 |
|
||||
| ctorinits.cpp:13:3:13:11 | NoisyPair | 1 | ConstructorFieldInit | ctorinits.cpp:15:7:15:16 | constructor init of field m_snd | 1 | 0 |
|
||||
| ctorinits.cpp:5:3:5:10 | NoisyInt | 0 | ConstructorDirectFieldInit | ctorinits.cpp:5:29:5:42 | constructor init of field m_value | 1 | 0 |
|
||||
| ctorinits.cpp:13:3:13:11 | NoisyPair | 0 | ConstructorDirectFieldInit | ctorinits.cpp:14:7:14:16 | constructor init of field m_fst | 1 | 0 |
|
||||
| ctorinits.cpp:13:3:13:11 | NoisyPair | 1 | ConstructorDirectFieldInit | ctorinits.cpp:15:7:15:16 | constructor init of field m_snd | 1 | 0 |
|
||||
| ctorinits.cpp:16:3:16:11 | NoisyPair | 0 | ConstructorDelegationInit | ctorinits.cpp:16:17:16:31 | call to NoisyPair | 2 | 2 |
|
||||
| ctorinits.cpp:21:8:21:8 | NoisyTriple | 0 | ConstructorDirectInit | ctorinits.cpp:21:8:21:8 | call to NoisyPair | 0 | 0 |
|
||||
| ctorinits.cpp:21:8:21:8 | NoisyTriple | 1 | ConstructorFieldInit | ctorinits.cpp:21:8:21:8 | constructor init of field m_third | 1 | 0 |
|
||||
| ctorinits.cpp:28:2:28:9 | ArrayInt | 0 | ConstructorFieldInit | ctorinits.cpp:28:13:28:13 | constructor init of field m_array | 1 | 0 |
|
||||
| ctorinits.cpp:42:2:42:16 | ArrayMemberInit | 0 | ConstructorFieldInit | ctorinits.cpp:42:22:42:32 | constructor init of field xs | 1 | 4 |
|
||||
| ctorinits.cpp:21:8:21:8 | NoisyTriple | 1 | ConstructorDirectFieldInit | ctorinits.cpp:21:8:21:8 | constructor init of field m_third | 1 | 0 |
|
||||
| ctorinits.cpp:28:2:28:9 | ArrayInt | 0 | ConstructorDirectFieldInit | ctorinits.cpp:28:13:28:13 | constructor init of field m_array | 1 | 0 |
|
||||
| ctorinits.cpp:42:2:42:16 | ArrayMemberInit | 0 | ConstructorDirectFieldInit | ctorinits.cpp:42:22:42:32 | constructor init of field xs | 1 | 4 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 0 | ConstructorDirectInit | ctorinits.cpp:69:5:69:8 | call to A | 1 | 1 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 1 | ConstructorDirectInit | ctorinits.cpp:67:5:67:8 | call to B | 1 | 1 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 2 | ConstructorDirectInit | ctorinits.cpp:70:5:70:8 | call to C | 1 | 1 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 3 | ConstructorFieldInit | ctorinits.cpp:68:5:68:8 | constructor init of field x | 1 | 1 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 4 | ConstructorFieldInit | ctorinits.cpp:71:5:71:8 | constructor init of field y | 1 | 1 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 5 | ConstructorFieldInit | ctorinits.cpp:66:5:66:8 | constructor init of field z | 1 | 1 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 3 | ConstructorDirectFieldInit | ctorinits.cpp:68:5:68:8 | constructor init of field x | 1 | 1 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 4 | ConstructorDirectFieldInit | ctorinits.cpp:71:5:71:8 | constructor init of field y | 1 | 1 |
|
||||
| ctorinits.cpp:65:3:65:15 | MultipleBases | 5 | ConstructorDirectFieldInit | ctorinits.cpp:66:5:66:8 | constructor init of field z | 1 | 1 |
|
||||
| ctorinits.cpp:81:8:81:8 | VD | 0 | ConstructorVirtualInit | ctorinits.cpp:81:8:81:8 | call to VB | 0 | 0 |
|
||||
| ctorinits.cpp:85:3:85:22 | VirtualAndNonVirtual | 0 | ConstructorVirtualInit | ctorinits.cpp:85:26:85:26 | call to VB | 0 | 0 |
|
||||
| ctorinits.cpp:85:3:85:22 | VirtualAndNonVirtual | 1 | ConstructorDirectInit | ctorinits.cpp:85:26:85:26 | call to VD | 0 | 0 |
|
||||
|
||||
@@ -277,7 +277,7 @@ bad_asts.cpp:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const Point &
|
||||
# 19| <initializations>:
|
||||
# 19| getInitializer(0): [ConstructorFieldInit] constructor init of field x
|
||||
# 19| getInitializer(0): [ConstructorDirectFieldInit] constructor init of field x
|
||||
# 19| Type = [IntType] int
|
||||
# 19| ValueCategory = prvalue
|
||||
# 19| getExpr(): [ReferenceFieldAccess] x
|
||||
@@ -289,7 +289,7 @@ bad_asts.cpp:
|
||||
# 19| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 19| Type = [SpecifiedType] const Point
|
||||
# 19| ValueCategory = lvalue
|
||||
# 19| getInitializer(1): [ConstructorFieldInit] constructor init of field y
|
||||
# 19| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field y
|
||||
# 19| Type = [IntType] int
|
||||
# 19| ValueCategory = prvalue
|
||||
# 19| getExpr(): [ReferenceFieldAccess] y
|
||||
@@ -8986,20 +8986,20 @@ ir.cpp:
|
||||
# 658| [Constructor] void C::C()
|
||||
# 658| <params>:
|
||||
# 658| <initializations>:
|
||||
# 659| getInitializer(0): [ConstructorFieldInit] constructor init of field m_a
|
||||
# 659| getInitializer(0): [ConstructorDirectFieldInit] constructor init of field m_a
|
||||
# 659| Type = [IntType] int
|
||||
# 659| ValueCategory = prvalue
|
||||
# 659| getExpr(): [Literal] 1
|
||||
# 659| Type = [IntType] int
|
||||
# 659| Value = [Literal] 1
|
||||
# 659| ValueCategory = prvalue
|
||||
# 663| getInitializer(1): [ConstructorFieldInit] constructor init of field m_b
|
||||
# 663| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field m_b
|
||||
# 663| Type = [Struct] String
|
||||
# 663| ValueCategory = prvalue
|
||||
# 663| getExpr(): [ConstructorCall] call to String
|
||||
# 663| Type = [VoidType] void
|
||||
# 663| ValueCategory = prvalue
|
||||
# 660| getInitializer(2): [ConstructorFieldInit] constructor init of field m_c
|
||||
# 660| getInitializer(2): [ConstructorDirectFieldInit] constructor init of field m_c
|
||||
# 660| Type = [PlainCharType] char
|
||||
# 660| ValueCategory = prvalue
|
||||
# 660| getExpr(): [Literal] 3
|
||||
@@ -9011,14 +9011,14 @@ ir.cpp:
|
||||
# 660| Type = [PlainCharType] char
|
||||
# 660| Value = [CStyleCast] 3
|
||||
# 660| ValueCategory = prvalue
|
||||
# 661| getInitializer(3): [ConstructorFieldInit] constructor init of field m_e
|
||||
# 661| getInitializer(3): [ConstructorDirectFieldInit] constructor init of field m_e
|
||||
# 661| Type = [VoidPointerType] void *
|
||||
# 661| ValueCategory = prvalue
|
||||
# 661| getExpr(): [Literal] 0
|
||||
# 661| Type = [VoidPointerType] void *
|
||||
# 661| Value = [Literal] 0
|
||||
# 661| ValueCategory = prvalue
|
||||
# 662| getInitializer(4): [ConstructorFieldInit] constructor init of field m_f
|
||||
# 662| getInitializer(4): [ConstructorDirectFieldInit] constructor init of field m_f
|
||||
# 662| Type = [Struct] String
|
||||
# 662| ValueCategory = prvalue
|
||||
# 662| getExpr(): [ConstructorCall] call to String
|
||||
@@ -9474,7 +9474,7 @@ ir.cpp:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const Base &
|
||||
# 745| <initializations>:
|
||||
# 745| getInitializer(0): [ConstructorFieldInit] constructor init of field base_s
|
||||
# 745| getInitializer(0): [ConstructorDirectFieldInit] constructor init of field base_s
|
||||
# 745| Type = [Struct] String
|
||||
# 745| ValueCategory = prvalue
|
||||
# 745| getExpr(): [ConstructorCall] call to String
|
||||
@@ -9485,7 +9485,7 @@ ir.cpp:
|
||||
# 748| [Constructor] void Base::Base()
|
||||
# 748| <params>:
|
||||
# 748| <initializations>:
|
||||
# 748| getInitializer(0): [ConstructorFieldInit] constructor init of field base_s
|
||||
# 748| getInitializer(0): [ConstructorDirectFieldInit] constructor init of field base_s
|
||||
# 748| Type = [Struct] String
|
||||
# 748| ValueCategory = prvalue
|
||||
# 748| getExpr(): [ConstructorCall] call to String
|
||||
@@ -9593,7 +9593,7 @@ ir.cpp:
|
||||
# 757| getInitializer(0): [ConstructorDirectInit] call to Base
|
||||
# 757| Type = [VoidType] void
|
||||
# 757| ValueCategory = prvalue
|
||||
# 757| getInitializer(1): [ConstructorFieldInit] constructor init of field middle_s
|
||||
# 757| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field middle_s
|
||||
# 757| Type = [Struct] String
|
||||
# 757| ValueCategory = prvalue
|
||||
# 757| getExpr(): [ConstructorCall] call to String
|
||||
@@ -9704,7 +9704,7 @@ ir.cpp:
|
||||
# 766| getInitializer(0): [ConstructorDirectInit] call to Middle
|
||||
# 766| Type = [VoidType] void
|
||||
# 766| ValueCategory = prvalue
|
||||
# 766| getInitializer(1): [ConstructorFieldInit] constructor init of field derived_s
|
||||
# 766| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field derived_s
|
||||
# 766| Type = [Struct] String
|
||||
# 766| ValueCategory = prvalue
|
||||
# 766| getExpr(): [ConstructorCall] call to String
|
||||
@@ -9743,7 +9743,7 @@ ir.cpp:
|
||||
# 775| getInitializer(0): [ConstructorVirtualInit] call to Base
|
||||
# 775| Type = [VoidType] void
|
||||
# 775| ValueCategory = prvalue
|
||||
# 775| getInitializer(1): [ConstructorFieldInit] constructor init of field middlevb1_s
|
||||
# 775| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field middlevb1_s
|
||||
# 775| Type = [Struct] String
|
||||
# 775| ValueCategory = prvalue
|
||||
# 775| getExpr(): [ConstructorCall] call to String
|
||||
@@ -9782,7 +9782,7 @@ ir.cpp:
|
||||
# 784| getInitializer(0): [ConstructorVirtualInit] call to Base
|
||||
# 784| Type = [VoidType] void
|
||||
# 784| ValueCategory = prvalue
|
||||
# 784| getInitializer(1): [ConstructorFieldInit] constructor init of field middlevb2_s
|
||||
# 784| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field middlevb2_s
|
||||
# 784| Type = [Struct] String
|
||||
# 784| ValueCategory = prvalue
|
||||
# 784| getExpr(): [ConstructorCall] call to String
|
||||
@@ -9827,7 +9827,7 @@ ir.cpp:
|
||||
# 793| getInitializer(2): [ConstructorDirectInit] call to MiddleVB2
|
||||
# 793| Type = [VoidType] void
|
||||
# 793| ValueCategory = prvalue
|
||||
# 793| getInitializer(3): [ConstructorFieldInit] constructor init of field derivedvb_s
|
||||
# 793| getInitializer(3): [ConstructorDirectFieldInit] constructor init of field derivedvb_s
|
||||
# 793| Type = [Struct] String
|
||||
# 793| ValueCategory = prvalue
|
||||
# 793| getExpr(): [ConstructorCall] call to String
|
||||
@@ -15190,7 +15190,7 @@ ir.cpp:
|
||||
# 1508| getInitializer(0): [ConstructorInit] constructor init
|
||||
# 1508| Type = [Struct] Inheritance_Test_B
|
||||
# 1508| ValueCategory = prvalue
|
||||
# 1508| getInitializer(1): [ConstructorFieldInit] constructor init of field x
|
||||
# 1508| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field x
|
||||
# 1508| Type = [IntType] int
|
||||
# 1508| ValueCategory = prvalue
|
||||
# 1508| getExpr(): [Literal] 42
|
||||
@@ -15414,7 +15414,7 @@ ir.cpp:
|
||||
# 1533| [Constructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct()
|
||||
# 1533| <params>:
|
||||
# 1533| <initializations>:
|
||||
# 1533| getInitializer(0): [ConstructorFieldInit] constructor init of field x
|
||||
# 1533| getInitializer(0): [ConstructorDefaultFieldInit] constructor init of field x
|
||||
# 1533| Type = [IntType] int
|
||||
# 1533| ValueCategory = prvalue
|
||||
# 1533| getEntryPoint(): [BlockStmt] { ... }
|
||||
@@ -15434,25 +15434,25 @@ ir.cpp:
|
||||
# 1537| [Constructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct()
|
||||
# 1537| <params>:
|
||||
# 1537| <initializations>:
|
||||
# 1537| getInitializer(0): [ConstructorFieldInit] constructor init of field i
|
||||
# 1537| getInitializer(0): [ConstructorDefaultFieldInit] constructor init of field i
|
||||
# 1537| Type = [IntType] int
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getInitializer(1): [ConstructorFieldInit] constructor init of field d
|
||||
# 1537| getInitializer(1): [ConstructorDefaultFieldInit] constructor init of field d
|
||||
# 1537| Type = [DoubleType] double
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getInitializer(2): [ConstructorFieldInit] constructor init of field r
|
||||
# 1537| getInitializer(2): [ConstructorDefaultFieldInit] constructor init of field r
|
||||
# 1537| Type = [LValueReferenceType] int &
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getInitializer(3): [ConstructorFieldInit] constructor init of field p
|
||||
# 1537| getInitializer(3): [ConstructorDefaultFieldInit] constructor init of field p
|
||||
# 1537| Type = [IntPointerType] int *
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getInitializer(4): [ConstructorFieldInit] constructor init of field xs
|
||||
# 1537| getInitializer(4): [ConstructorDefaultFieldInit] constructor init of field xs
|
||||
# 1537| Type = [CTypedefType,NestedTypedefType] ArrayType
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getInitializer(5): [ConstructorFieldInit] constructor init of field r_alt
|
||||
# 1537| getInitializer(5): [ConstructorDefaultFieldInit] constructor init of field r_alt
|
||||
# 1537| Type = [CTypedefType,NestedTypedefType] RefType
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getInitializer(6): [ConstructorFieldInit] constructor init of field m
|
||||
# 1537| getInitializer(6): [ConstructorDirectFieldInit] constructor init of field m
|
||||
# 1537| Type = [Struct] StructuredBindingDataMemberMemberStruct
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberMemberStruct
|
||||
@@ -15465,7 +15465,7 @@ ir.cpp:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct &
|
||||
# 1537| <initializations>:
|
||||
# 1537| getInitializer(0): [ConstructorFieldInit] constructor init of field i
|
||||
# 1537| getInitializer(0): [ConstructorDirectFieldInit] constructor init of field i
|
||||
# 1537| Type = [IntType] int
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ReferenceFieldAccess] i
|
||||
@@ -15477,7 +15477,7 @@ ir.cpp:
|
||||
# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct
|
||||
# 1537| ValueCategory = lvalue
|
||||
# 1537| getInitializer(1): [ConstructorFieldInit] constructor init of field d
|
||||
# 1537| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field d
|
||||
# 1537| Type = [DoubleType] double
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ReferenceFieldAccess] d
|
||||
@@ -15489,7 +15489,7 @@ ir.cpp:
|
||||
# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct
|
||||
# 1537| ValueCategory = lvalue
|
||||
# 1537| getInitializer(2): [ConstructorFieldInit] constructor init of field b
|
||||
# 1537| getInitializer(2): [ConstructorDirectFieldInit] constructor init of field b
|
||||
# 1537| Type = [IntType] unsigned int
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ReferenceFieldAccess] b
|
||||
@@ -15501,7 +15501,7 @@ ir.cpp:
|
||||
# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct
|
||||
# 1537| ValueCategory = lvalue
|
||||
# 1537| getInitializer(3): [ConstructorFieldInit] constructor init of field r
|
||||
# 1537| getInitializer(3): [ConstructorDirectFieldInit] constructor init of field r
|
||||
# 1537| Type = [LValueReferenceType] int &
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ReferenceFieldAccess] r
|
||||
@@ -15513,7 +15513,7 @@ ir.cpp:
|
||||
# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct
|
||||
# 1537| ValueCategory = lvalue
|
||||
# 1537| getInitializer(4): [ConstructorFieldInit] constructor init of field p
|
||||
# 1537| getInitializer(4): [ConstructorDirectFieldInit] constructor init of field p
|
||||
# 1537| Type = [IntPointerType] int *
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ReferenceFieldAccess] p
|
||||
@@ -15525,7 +15525,7 @@ ir.cpp:
|
||||
# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct
|
||||
# 1537| ValueCategory = lvalue
|
||||
# 1537| getInitializer(5): [ConstructorFieldInit] constructor init of field xs
|
||||
# 1537| getInitializer(5): [ConstructorDirectFieldInit] constructor init of field xs
|
||||
# 1537| Type = [CTypedefType,NestedTypedefType] ArrayType
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ReferenceFieldAccess] xs
|
||||
@@ -15537,7 +15537,7 @@ ir.cpp:
|
||||
# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct
|
||||
# 1537| ValueCategory = lvalue
|
||||
# 1537| getInitializer(6): [ConstructorFieldInit] constructor init of field r_alt
|
||||
# 1537| getInitializer(6): [ConstructorDirectFieldInit] constructor init of field r_alt
|
||||
# 1537| Type = [CTypedefType,NestedTypedefType] RefType
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ReferenceFieldAccess] r_alt
|
||||
@@ -15549,7 +15549,7 @@ ir.cpp:
|
||||
# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct
|
||||
# 1537| ValueCategory = lvalue
|
||||
# 1537| getInitializer(7): [ConstructorFieldInit] constructor init of field m
|
||||
# 1537| getInitializer(7): [ConstructorDirectFieldInit] constructor init of field m
|
||||
# 1537| Type = [Struct] StructuredBindingDataMemberMemberStruct
|
||||
# 1537| ValueCategory = prvalue
|
||||
# 1537| getExpr(): [ReferenceFieldAccess] m
|
||||
@@ -15918,13 +15918,13 @@ ir.cpp:
|
||||
# 1590| [Constructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet()
|
||||
# 1590| <params>:
|
||||
# 1590| <initializations>:
|
||||
# 1590| getInitializer(0): [ConstructorFieldInit] constructor init of field i
|
||||
# 1590| getInitializer(0): [ConstructorDefaultFieldInit] constructor init of field i
|
||||
# 1590| Type = [IntType] int
|
||||
# 1590| ValueCategory = prvalue
|
||||
# 1590| getInitializer(1): [ConstructorFieldInit] constructor init of field d
|
||||
# 1590| getInitializer(1): [ConstructorDefaultFieldInit] constructor init of field d
|
||||
# 1590| Type = [DoubleType] double
|
||||
# 1590| ValueCategory = prvalue
|
||||
# 1590| getInitializer(2): [ConstructorFieldInit] constructor init of field r
|
||||
# 1590| getInitializer(2): [ConstructorDefaultFieldInit] constructor init of field r
|
||||
# 1590| Type = [LValueReferenceType] int &
|
||||
# 1590| ValueCategory = prvalue
|
||||
# 1590| getEntryPoint(): [BlockStmt] { ... }
|
||||
@@ -15934,7 +15934,7 @@ ir.cpp:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const StructuredBindingTupleRefGet &
|
||||
# 1590| <initializations>:
|
||||
# 1590| getInitializer(0): [ConstructorFieldInit] constructor init of field i
|
||||
# 1590| getInitializer(0): [ConstructorDirectFieldInit] constructor init of field i
|
||||
# 1590| Type = [IntType] int
|
||||
# 1590| ValueCategory = prvalue
|
||||
# 1590| getExpr(): [ReferenceFieldAccess] i
|
||||
@@ -15946,7 +15946,7 @@ ir.cpp:
|
||||
# 1590| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1590| Type = [SpecifiedType] const StructuredBindingTupleRefGet
|
||||
# 1590| ValueCategory = lvalue
|
||||
# 1590| getInitializer(1): [ConstructorFieldInit] constructor init of field d
|
||||
# 1590| getInitializer(1): [ConstructorDirectFieldInit] constructor init of field d
|
||||
# 1590| Type = [DoubleType] double
|
||||
# 1590| ValueCategory = prvalue
|
||||
# 1590| getExpr(): [ReferenceFieldAccess] d
|
||||
@@ -15958,7 +15958,7 @@ ir.cpp:
|
||||
# 1590| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 1590| Type = [SpecifiedType] const StructuredBindingTupleRefGet
|
||||
# 1590| ValueCategory = lvalue
|
||||
# 1590| getInitializer(2): [ConstructorFieldInit] constructor init of field r
|
||||
# 1590| getInitializer(2): [ConstructorDirectFieldInit] constructor init of field r
|
||||
# 1590| Type = [LValueReferenceType] int &
|
||||
# 1590| ValueCategory = prvalue
|
||||
# 1590| getExpr(): [ReferenceFieldAccess] r
|
||||
@@ -16327,10 +16327,10 @@ ir.cpp:
|
||||
# 1657| [Constructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet()
|
||||
# 1657| <params>:
|
||||
# 1657| <initializations>:
|
||||
# 1657| getInitializer(0): [ConstructorFieldInit] constructor init of field i
|
||||
# 1657| getInitializer(0): [ConstructorDefaultFieldInit] constructor init of field i
|
||||
# 1657| Type = [IntType] int
|
||||
# 1657| ValueCategory = prvalue
|
||||
# 1657| getInitializer(1): [ConstructorFieldInit] constructor init of field r
|
||||
# 1657| getInitializer(1): [ConstructorDefaultFieldInit] constructor init of field r
|
||||
# 1657| Type = [LValueReferenceType] int &
|
||||
# 1657| ValueCategory = prvalue
|
||||
# 1657| getEntryPoint(): [BlockStmt] { ... }
|
||||
@@ -19817,7 +19817,7 @@ ir.cpp:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const ClassWithDestructor &
|
||||
# 2188| <initializations>:
|
||||
# 2188| getInitializer(0): [ConstructorFieldInit] constructor init of field x
|
||||
# 2188| getInitializer(0): [ConstructorDirectFieldInit] constructor init of field x
|
||||
# 2188| Type = [CharPointerType] char *
|
||||
# 2188| ValueCategory = prvalue
|
||||
# 2188| getExpr(): [ReferenceFieldAccess] x
|
||||
@@ -50386,7 +50386,7 @@ perf-regression.cpp:
|
||||
# 6| [Constructor] void Big::Big()
|
||||
# 6| <params>:
|
||||
# 6| <initializations>:
|
||||
# 6| getInitializer(0): [ConstructorFieldInit] constructor init of field buffer
|
||||
# 6| getInitializer(0): [ConstructorDirectFieldInit] constructor init of field buffer
|
||||
# 6| Type = [ArrayType] char[1073741824]
|
||||
# 6| ValueCategory = prvalue
|
||||
# 6| getExpr(): [ArrayAggregateLiteral] {...}
|
||||
|
||||
Reference in New Issue
Block a user