C++: Add missing comment and update test results.

This commit is contained in:
Cornelius Riemenschneider
2020-10-28 16:12:02 +01:00
parent 7e667b9bec
commit 4276d1f3e5
3 changed files with 457 additions and 453 deletions

View File

@@ -182,6 +182,10 @@ class PrintASTNode extends TPrintASTNode {
result = childIndex.toString()
}
/**
* Gets the QL predicate that can be used to access the child at `childIndex`.
* May not hold for all children, see for example `FunctionNode`.
*/
abstract string getChildAccessorPredicate(int childIndex);
/**
@@ -616,7 +620,7 @@ class ArrayAggregateLiteralNode extends ExprNode {
}
}
string getChildAccessor(Locatable parent, Element child) {
private string getChildAccessor(Locatable parent, Element child) {
shouldPrintFunction(getEnclosingFunction(parent)) and
(
exists(Stmt s | s = parent.(Stmt) |

View File

@@ -1,22 +1,22 @@
#-----| [CopyAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag const&)
#-----| ...:
#-----| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const __va_list_tag &
#-----| [MoveAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag&&)
#-----| ...:
#-----| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] __va_list_tag &&
#-----| [Operator,TopLevelFunction] void operator delete(void*)
#-----| ...:
#-----| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [VoidPointerType] void *
#-----| [Operator,TopLevelFunction] void* operator new(unsigned long)
#-----| ...:
#-----| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LongType] unsigned long
AddressOf.c:
# 1| [TopLevelFunction] void AddressOf(int)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] i
# 1| Type = [IntType] int
# 1| getEntryPoint(): [BlockStmt] { ... }
@@ -33,7 +33,7 @@ AddressOf.c:
# 3| getStmt(1): [ReturnStmt] return ...
ArrayToPointer.c:
# 5| [TopLevelFunction] void ArrayToPointer()
# 5| ...:
# 5| :
# 6| getEntryPoint(): [BlockStmt] { ... }
# 7| getStmt(0): [DeclStmt] declaration
# 7| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
@@ -65,7 +65,7 @@ ArrayToPointer.c:
# 10| getStmt(3): [ReturnStmt] return ...
Cast.c:
# 1| [TopLevelFunction] void Cast(char*, void*)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] c
# 1| Type = [CharPointerType] char *
# 1| getParameter(1): [Parameter] v
@@ -88,7 +88,7 @@ Cast.c:
# 3| getStmt(1): [ReturnStmt] return ...
ConditionDecl.cpp:
# 1| [TopLevelFunction] void ConditionDecl()
# 1| ...:
# 1| :
# 1| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [DeclStmt] declaration
# 2| getDeclarationEntry(0): [VariableDeclarationEntry] definition of j
@@ -113,59 +113,59 @@ ConditionDecl.cpp:
# 5| getStmt(2): [ReturnStmt] return ...
ConstructorCall.cpp:
# 1| [CopyAssignmentOperator] C& C::operator=(C const&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const C &
# 1| [MoveAssignmentOperator] C& C::operator=(C&&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] C &&
# 1| [CopyConstructor] void C::C(C const&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const C &
# 1| [MoveConstructor] void C::C(C&&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] C &&
# 3| [ConversionConstructor] void C::C(int)
# 3| ...:
# 3| :
# 3| getParameter(0): [Parameter] i
# 3| Type = [IntType] int
# 3| ...:
# 3| :
# 3| getEntryPoint(): [BlockStmt] { ... }
# 4| getStmt(0): [ReturnStmt] return ...
# 7| [CopyAssignmentOperator] D& D::operator=(D const&)
# 7| ...:
# 7| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const D &
# 7| [MoveAssignmentOperator] D& D::operator=(D&&)
# 7| ...:
# 7| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] D &&
# 7| [CopyConstructor] void D::D(D const&)
# 7| ...:
# 7| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const D &
# 7| [MoveConstructor] void D::D(D&&)
# 7| ...:
# 7| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] D &&
# 9| [Constructor] void D::D()
# 9| ...:
# 9| ...:
# 9| :
# 9| :
# 9| getEntryPoint(): [BlockStmt] { ... }
# 10| getStmt(0): [ReturnStmt] return ...
# 13| [CopyAssignmentOperator] E& E::operator=(E const&)
# 13| ...:
# 13| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const E &
# 13| [MoveAssignmentOperator] E& E::operator=(E&&)
# 13| ...:
# 13| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] E &&
# 17| [TopLevelFunction] void ConstructorCall(C*, D*, E*)
# 17| ...:
# 17| :
# 17| getParameter(0): [Parameter] c
# 17| Type = [PointerType] C *
# 17| getParameter(1): [Parameter] d
@@ -220,7 +220,7 @@ ConstructorCall.cpp:
# 21| getStmt(3): [ReturnStmt] return ...
Conversion1.c:
# 1| [TopLevelFunction] void Conversion1()
# 1| ...:
# 1| :
# 1| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [DeclStmt] declaration
# 2| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
@@ -238,7 +238,7 @@ Conversion1.c:
# 3| getStmt(1): [ReturnStmt] return ...
Conversion2.c:
# 1| [TopLevelFunction] void Conversion2(int)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] x
# 1| Type = [IntType] int
# 1| getEntryPoint(): [BlockStmt] { ... }
@@ -274,7 +274,7 @@ Conversion2.c:
# 3| getStmt(1): [ReturnStmt] return ...
Conversion3.cpp:
# 1| [TopLevelFunction] void Conversion3(int)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] x
# 1| Type = [IntType] int
# 1| getEntryPoint(): [BlockStmt] { ... }
@@ -324,7 +324,7 @@ Conversion3.cpp:
# 3| getStmt(1): [ReturnStmt] return ...
Conversion4.c:
# 1| [TopLevelFunction] void Conversion4(int)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] x
# 1| Type = [IntType] int
# 1| getEntryPoint(): [BlockStmt] { ... }
@@ -389,14 +389,14 @@ Conversion4.c:
# 11| getStmt(1): [ReturnStmt] return ...
DestructorCall.cpp:
# 1| [Constructor] void C::C()
# 1| ...:
# 1| :
# 3| [Destructor] void C::~C()
# 3| ...:
# 3| :
# 3| getEntryPoint(): [BlockStmt] { ... }
# 4| getStmt(0): [ReturnStmt] return ...
# 3| ...:
# 3| :
# 11| [TopLevelFunction] void DestructorCall(C*, D*)
# 11| ...:
# 11| :
# 11| getParameter(0): [Parameter] c
# 11| Type = [PointerType] C *
# 11| getParameter(1): [Parameter] d
@@ -422,7 +422,7 @@ DestructorCall.cpp:
# 14| getStmt(2): [ReturnStmt] return ...
DynamicCast.cpp:
# 1| [CopyAssignmentOperator] Base& Base::operator=(Base const&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Base &
#-----| getEntryPoint(): [BlockStmt] { ... }
@@ -437,25 +437,25 @@ DynamicCast.cpp:
#-----| Type = [LValueReferenceType] Base &
#-----| ValueCategory = prvalue
# 1| [MoveAssignmentOperator] Base& Base::operator=(Base&&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Base &&
# 1| [Constructor] void Base::Base()
# 1| ...:
# 1| :
# 1| [CopyConstructor] void Base::Base(Base const&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Base &
# 1| [MoveConstructor] void Base::Base(Base&&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Base &&
# 2| [VirtualFunction] void Base::f()
# 2| ...:
# 2| :
# 2| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [ReturnStmt] return ...
# 4| [CopyAssignmentOperator] Derived& Derived::operator=(Derived const&)
# 4| ...:
# 4| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Derived &
#-----| getEntryPoint(): [BlockStmt] { ... }
@@ -503,25 +503,25 @@ DynamicCast.cpp:
#-----| Type = [LValueReferenceType] Derived &
#-----| ValueCategory = prvalue
# 4| [MoveAssignmentOperator] Derived& Derived::operator=(Derived&&)
# 4| ...:
# 4| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Derived &&
# 4| [Constructor] void Derived::Derived()
# 4| ...:
# 4| :
# 4| [CopyConstructor] void Derived::Derived(Derived const&)
# 4| ...:
# 4| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Derived &
# 4| [MoveConstructor] void Derived::Derived(Derived&&)
# 4| ...:
# 4| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Derived &&
# 5| [VirtualFunction] void Derived::f()
# 5| ...:
# 5| :
# 5| getEntryPoint(): [BlockStmt] { ... }
# 5| getStmt(0): [ReturnStmt] return ...
# 8| [TopLevelFunction] void DynamicCast(Base*, Derived*)
# 8| ...:
# 8| :
# 8| getParameter(0): [Parameter] bp
# 8| Type = [PointerType] Base *
# 8| getParameter(1): [Parameter] d
@@ -543,7 +543,7 @@ DynamicCast.cpp:
# 9| ValueCategory = prvalue
# 10| getStmt(1): [ReturnStmt] return ...
# 12| [TopLevelFunction] void DynamicCastRef(Base&, Derived&)
# 12| ...:
# 12| :
# 12| getParameter(0): [Parameter] bp
# 12| Type = [LValueReferenceType] Base &
# 12| getParameter(1): [Parameter] d
@@ -582,7 +582,7 @@ DynamicCast.cpp:
# 14| getStmt(1): [ReturnStmt] return ...
Parenthesis.c:
# 1| [TopLevelFunction] void Parenthesis(int)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] i
# 1| Type = [IntType] int
# 1| getEntryPoint(): [BlockStmt] { ... }
@@ -616,7 +616,7 @@ Parenthesis.c:
# 3| getStmt(1): [ReturnStmt] return ...
PointerDereference.c:
# 1| [TopLevelFunction] void PointerDereference(int*, int)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] i
# 1| Type = [IntPointerType] int *
# 1| getParameter(1): [Parameter] j
@@ -638,7 +638,7 @@ PointerDereference.c:
# 3| getStmt(1): [ReturnStmt] return ...
ReferenceDereference.cpp:
# 4| [TopLevelFunction] void ReferenceDereference(int&, int)
# 4| ...:
# 4| :
# 4| getParameter(0): [Parameter] i
# 4| Type = [LValueReferenceType] int &
# 4| getParameter(1): [Parameter] j
@@ -660,7 +660,7 @@ ReferenceDereference.cpp:
# 6| getStmt(1): [ReturnStmt] return ...
ReferenceTo.cpp:
# 1| [TopLevelFunction] int& ReferenceTo(int*)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] i
# 1| Type = [IntPointerType] int *
# 1| getEntryPoint(): [BlockStmt] { ... }
@@ -676,7 +676,7 @@ ReferenceTo.cpp:
# 2| ValueCategory = prvalue
Sizeof.c:
# 1| [TopLevelFunction] void Sizeof(int[])
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] array
# 1| Type = [ArrayType] int[]
# 1| getEntryPoint(): [BlockStmt] { ... }
@@ -715,7 +715,7 @@ Sizeof.c:
# 4| getStmt(2): [ReturnStmt] return ...
StatementExpr.c:
# 1| [TopLevelFunction] void StatementExpr()
# 1| ...:
# 1| :
# 1| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [DeclStmt] declaration
# 2| getDeclarationEntry(0): [VariableDeclarationEntry] definition of j
@@ -727,15 +727,15 @@ StatementExpr.c:
# 3| getStmt(1): [ReturnStmt] return ...
StaticMemberAccess.cpp:
# 1| [CopyAssignmentOperator] X& X::operator=(X const&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const X &
# 1| [MoveAssignmentOperator] X& X::operator=(X&&)
# 1| ...:
# 1| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] X &&
# 5| [TopLevelFunction] void StaticMemberAccess(int, X&)
# 5| ...:
# 5| :
# 5| getParameter(0): [Parameter] i
# 5| Type = [IntType] int
# 5| getParameter(1): [Parameter] xref
@@ -760,7 +760,7 @@ StaticMemberAccess.cpp:
# 9| getStmt(1): [ReturnStmt] return ...
Subscript.c:
# 1| [TopLevelFunction] void Subscript(int[], int)
# 1| ...:
# 1| :
# 1| getParameter(0): [Parameter] i
# 1| Type = [ArrayType] int[]
# 1| getParameter(1): [Parameter] j
@@ -786,31 +786,31 @@ Subscript.c:
# 3| getStmt(1): [ReturnStmt] return ...
Throw.cpp:
# 2| [CopyAssignmentOperator] F& F::operator=(F const&)
# 2| ...:
# 2| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const F &
# 2| [MoveAssignmentOperator] F& F::operator=(F&&)
# 2| ...:
# 2| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] F &&
# 2| [CopyConstructor] void F::F(F const&)
# 2| ...:
# 2| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const F &
# 2| [MoveConstructor] void F::F(F&&)
# 2| ...:
# 2| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] F &&
# 2| ...:
# 2| :
# 2| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [ReturnStmt] return ...
# 4| [Constructor] void F::F()
# 4| ...:
# 4| ...:
# 4| :
# 4| :
# 4| getEntryPoint(): [BlockStmt] { ... }
# 4| getStmt(0): [ReturnStmt] return ...
# 6| [TopLevelFunction] void Throw(int)
# 6| ...:
# 6| :
# 6| getParameter(0): [Parameter] i
# 6| Type = [IntType] int
# 6| getEntryPoint(): [BlockStmt] { ... }
@@ -847,21 +847,21 @@ Throw.cpp:
# 13| ValueCategory = prvalue
Typeid.cpp:
# 4| [CopyAssignmentOperator] std::type_info& std::type_info::operator=(std::type_info const&)
# 4| ...:
# 4| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const type_info &
# 4| [MoveAssignmentOperator] std::type_info& std::type_info::operator=(std::type_info&&)
# 4| ...:
# 4| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] type_info &&
# 7| [ConstMemberFunction] char const* std::type_info::name() const
# 7| ...:
# 7| :
# 13| [VirtualFunction] void Base::v()
# 13| ...:
# 13| :
# 13| getEntryPoint(): [BlockStmt] { ... }
# 13| getStmt(0): [ReturnStmt] return ...
# 18| [TopLevelFunction] void TypeId(Base*)
# 18| ...:
# 18| :
# 18| getParameter(0): [Parameter] bp
# 18| Type = [PointerType] Base *
# 18| getEntryPoint(): [BlockStmt] { ... }
@@ -881,7 +881,7 @@ Typeid.cpp:
# 20| getStmt(1): [ReturnStmt] return ...
VacuousDestructorCall.cpp:
# 2| [TemplateFunction,TopLevelFunction] void CallDestructor<T>(T, T*)
# 2| ...:
# 2| :
# 2| getParameter(0): [Parameter] x
# 2| Type = [TemplateParameter] T
# 2| getParameter(1): [Parameter] y
@@ -909,7 +909,7 @@ VacuousDestructorCall.cpp:
# 4| ValueCategory = prvalue(load)
# 5| getStmt(2): [ReturnStmt] return ...
# 2| [FunctionTemplateInstantiation,TopLevelFunction] void CallDestructor<int>(int, int*)
# 2| ...:
# 2| :
# 2| getParameter(0): [Parameter] x
# 2| Type = [IntType] int
# 2| getParameter(1): [Parameter] y
@@ -931,7 +931,7 @@ VacuousDestructorCall.cpp:
# 4| ValueCategory = prvalue(load)
# 5| getStmt(2): [ReturnStmt] return ...
# 7| [TopLevelFunction] void Vacuous(int)
# 7| ...:
# 7| :
# 7| getParameter(0): [Parameter] i
# 7| Type = [IntType] int
# 7| getEntryPoint(): [BlockStmt] { ... }
@@ -951,7 +951,7 @@ VacuousDestructorCall.cpp:
# 11| getStmt(1): [ReturnStmt] return ...
Varargs.c:
# 8| [TopLevelFunction] void VarArgs(char const*)
# 8| ...:
# 8| :
# 8| getParameter(0): [Parameter] text
# 8| Type = [PointerType] const char *
# 8| getEntryPoint(): [BlockStmt] { ... }
@@ -984,7 +984,7 @@ Varargs.c:
# 12| getStmt(3): [ReturnStmt] return ...
macro_etc.c:
# 3| [TopLevelFunction] int bar(int)
# 3| ...:
# 3| :
# 3| getParameter(0): [Parameter] i
# 3| Type = [IntType] int
# 3| getEntryPoint(): [BlockStmt] { ... }
@@ -1036,7 +1036,7 @@ macro_etc.c:
# 10| Value = [Literal] 2
# 10| ValueCategory = prvalue
# 22| [TopLevelFunction] int foo()
# 22| ...:
# 22| :
# 22| getEntryPoint(): [BlockStmt] { ... }
# 23| getStmt(0): [DeclStmt] declaration
# 23| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t
@@ -1240,44 +1240,44 @@ macro_etc.c:
# 32| ValueCategory = prvalue
union_etc.cpp:
# 2| [CopyAssignmentOperator] S& S::operator=(S const&)
# 2| ...:
# 2| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const S &
# 2| [MoveAssignmentOperator] S& S::operator=(S&&)
# 2| ...:
# 2| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] S &&
# 2| [Constructor] void S::S()
# 2| ...:
# 2| ...:
# 2| :
# 2| :
# 2| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [ReturnStmt] return ...
# 2| [CopyConstructor] void S::S(S const&)
# 2| ...:
# 2| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const S &
# 2| [MoveConstructor] void S::S(S&&)
# 2| ...:
# 2| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] S &&
# 3| [CopyAssignmentOperator] S::U& S::U::operator=(S::U const public&)
# 3| ...:
# 3| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const U &
# 3| [MoveAssignmentOperator] S::U& S::U::operator=(S::U&&)
# 3| ...:
# 3| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] U &&
# 4| [CopyAssignmentOperator] S::C& S::C::operator=(S::C const public&)
# 4| ...:
# 4| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const C &
# 4| [MoveAssignmentOperator] S::C& S::C::operator=(S::C&&)
# 4| ...:
# 4| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] C &&
# 6| [VirtualFunction] void S::set_q(int)
# 6| ...:
# 6| :
# 6| getParameter(0): [Parameter] val
# 6| Type = [IntType] int
# 6| getEntryPoint(): [BlockStmt] { ... }
@@ -1296,55 +1296,55 @@ union_etc.cpp:
# 6| ValueCategory = prvalue(load)
# 6| getStmt(1): [ReturnStmt] return ...
# 9| [CopyAssignmentOperator] C& C::operator=(C const&)
# 9| ...:
# 9| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const C &
# 9| [MoveAssignmentOperator] C& C::operator=(C&&)
# 9| ...:
# 9| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] C &&
# 11| [CopyAssignmentOperator] C::S& C::S::operator=(C::S const public&)
# 11| ...:
# 11| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const S &
# 11| [MoveAssignmentOperator] C::S& C::S::operator=(C::S&&)
# 11| ...:
# 11| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] S &&
# 12| [CopyAssignmentOperator] C::U& C::U::operator=(C::U const public&)
# 12| ...:
# 12| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const U &
# 12| [MoveAssignmentOperator] C::U& C::U::operator=(C::U&&)
# 12| ...:
# 12| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] U &&
# 16| [CopyAssignmentOperator] U& U::operator=(U const&)
# 16| ...:
# 16| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const U &
# 16| [MoveAssignmentOperator] U& U::operator=(U&&)
# 16| ...:
# 16| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] U &&
# 17| [CopyAssignmentOperator] U::S& U::S::operator=(U::S const public&)
# 17| ...:
# 17| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const S &
# 17| [MoveAssignmentOperator] U::S& U::S::operator=(U::S&&)
# 17| ...:
# 17| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] S &&
# 18| [CopyAssignmentOperator] U::C& U::C::operator=(U::C const public&)
# 18| ...:
# 18| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const C &
# 18| [MoveAssignmentOperator] U::C& U::C::operator=(U::C&&)
# 18| ...:
# 18| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] C &&
# 22| [TopLevelFunction] int foo()
# 22| ...:
# 22| :
# 22| getEntryPoint(): [BlockStmt] { ... }
# 23| getStmt(0): [DeclStmt] declaration
# 23| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s
@@ -1442,25 +1442,25 @@ union_etc.cpp:
# 28| Type = [Class] C
# 28| ValueCategory = lvalue
# 31| [CopyAssignmentOperator] T& T::operator=(T const&)
# 31| ...:
# 31| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const T &
# 31| [MoveAssignmentOperator] T& T::operator=(T&&)
# 31| ...:
# 31| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] T &&
# 31| [Constructor] void T::T()
# 31| ...:
# 31| :
# 31| [CopyConstructor] void T::T(T const&)
# 31| ...:
# 31| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const T &
# 31| [MoveConstructor] void T::T(T&&)
# 31| ...:
# 31| :
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] T &&
# 33| [VirtualFunction] void T::set_q(int)
# 33| ...:
# 33| :
# 33| getParameter(0): [Parameter] val
# 33| Type = [IntType] int
# 33| getEntryPoint(): [BlockStmt] { ... }
@@ -1479,7 +1479,7 @@ union_etc.cpp:
# 33| ValueCategory = prvalue(load)
# 33| getStmt(1): [ReturnStmt] return ...
# 36| [TopLevelFunction] int bar()
# 36| ...:
# 36| :
# 36| getEntryPoint(): [BlockStmt] { ... }
# 37| getStmt(0): [DeclStmt] declaration
# 37| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s

File diff suppressed because it is too large Load Diff