Files
codeql/cpp/ql/test/library-tests/ir/ir/PrintAST.expected
Dave Bartolomeo 69dee154f3 Fix PR feedback
2020-10-31 09:03:51 -04:00

11549 lines
590 KiB
Plaintext

#-----| [CopyAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag const&)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const __va_list_tag &
#-----| [MoveAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag&&)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] __va_list_tag &&
#-----| [Operator,TopLevelFunction] void operator delete(void*)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [VoidPointerType] void *
#-----| [Operator,TopLevelFunction] void operator delete(void*, unsigned long)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [VoidPointerType] void *
#-----| getParameter(1): [Parameter] (unnamed parameter 1)
#-----| Type = [LongType] unsigned long
#-----| [Operator,TopLevelFunction] void operator delete(void*, unsigned long, std::align_val_t)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [VoidPointerType] void *
#-----| getParameter(1): [Parameter] (unnamed parameter 1)
#-----| Type = [LongType] unsigned long
#-----| getParameter(2): [Parameter] (unnamed parameter 2)
#-----| Type = [ScopedEnum] align_val_t
#-----| [Operator,TopLevelFunction] void operator delete[](void*, unsigned long)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [VoidPointerType] void *
#-----| getParameter(1): [Parameter] (unnamed parameter 1)
#-----| Type = [LongType] unsigned long
#-----| [Operator,TopLevelFunction] void operator delete[](void*, unsigned long, std::align_val_t)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [VoidPointerType] void *
#-----| getParameter(1): [Parameter] (unnamed parameter 1)
#-----| Type = [LongType] unsigned long
#-----| getParameter(2): [Parameter] (unnamed parameter 2)
#-----| Type = [ScopedEnum] align_val_t
#-----| [Operator,TopLevelFunction] void* operator new(unsigned long)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LongType] unsigned long
#-----| [Operator,TopLevelFunction] void* operator new(unsigned long, std::align_val_t)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LongType] unsigned long
#-----| getParameter(1): [Parameter] (unnamed parameter 1)
#-----| Type = [ScopedEnum] align_val_t
#-----| [Operator,TopLevelFunction] void* operator new[](unsigned long)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LongType] unsigned long
#-----| [Operator,TopLevelFunction] void* operator new[](unsigned long, std::align_val_t)
#-----| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LongType] unsigned long
#-----| getParameter(1): [Parameter] (unnamed parameter 1)
#-----| Type = [ScopedEnum] align_val_t
bad_asts.cpp:
# 5| [CopyAssignmentOperator] Bad::S& Bad::S::operator=(Bad::S const&)
# 5| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const S &
# 5| [MoveAssignmentOperator] Bad::S& Bad::S::operator=(Bad::S&&)
# 5| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] S &&
# 9| [FunctionTemplateInstantiation,MemberFunction] int Bad::S::MemberFunction<int 6>(int)
# 9| <params>:
# 9| getParameter(0): [Parameter] y
# 9| Type = [IntType] int
# 9| getEntryPoint(): [BlockStmt] { ... }
# 10| getStmt(0): [ReturnStmt] return ...
# 10| getExpr(): [AddExpr] ... + ...
# 10| Type = [IntType] int
# 10| ValueCategory = prvalue
# 10| getLeftOperand(): [AddExpr] ... + ...
# 10| Type = [IntType] int
# 10| ValueCategory = prvalue
# 10| getLeftOperand(): [Literal] 6
# 10| Type = [IntType] int
# 10| Value = [Literal] 6
# 10| ValueCategory = prvalue
# 10| getRightOperand(): [PointerFieldAccess] x
# 10| Type = [IntType] int
# 10| ValueCategory = prvalue(load)
# 10| getQualifier(): [ThisExpr] this
# 10| Type = [PointerType] S *
# 10| ValueCategory = prvalue(load)
# 10| getRightOperand(): [VariableAccess] y
# 10| Type = [IntType] int
# 10| ValueCategory = prvalue(load)
# 9| [MemberFunction,TemplateFunction] int Bad::S::MemberFunction<int t>(int)
# 9| <params>:
# 9| getParameter(0): [Parameter] y
# 9| Type = [IntType] int
# 9| getEntryPoint(): [BlockStmt] { ... }
# 10| getStmt(0): [ReturnStmt] return ...
# 10| getExpr(): [AddExpr] ... + ...
# 10| Type = [IntType] int
# 10| ValueCategory = prvalue
# 10| getLeftOperand(): [AddExpr] ... + ...
# 10| Type = [IntType] int
# 10| ValueCategory = prvalue
# 10| getLeftOperand(): [Literal] t
# 10| Type = [IntType] int
# 10| Value = [Literal] t
# 10| ValueCategory = prvalue
# 10| getRightOperand(): [PointerFieldAccess] x
# 10| Type = [IntType] int
# 10| ValueCategory = prvalue(load)
# 10| getQualifier(): [ThisExpr] this
# 10| Type = [PointerType] S *
# 10| ValueCategory = prvalue(load)
# 10| getRightOperand(): [VariableAccess] y
# 10| Type = [IntType] int
# 10| ValueCategory = prvalue(load)
# 14| [TopLevelFunction] void Bad::CallBadMemberFunction()
# 14| <params>:
# 14| getEntryPoint(): [BlockStmt] { ... }
# 15| getStmt(0): [DeclStmt] declaration
# 15| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s
# 15| Type = [Struct] S
# 15| getVariable().getInitializer(): [Initializer] initializer for s
# 15| getExpr(): [ClassAggregateLiteral] {...}
# 15| Type = [Struct] S
# 15| ValueCategory = prvalue
# 16| getStmt(1): [ExprStmt] ExprStmt
# 16| getExpr(): [FunctionCall] call to MemberFunction
# 16| Type = [IntType] int
# 16| ValueCategory = prvalue
# 16| getQualifier(): [VariableAccess] s
# 16| Type = [Struct] S
# 16| ValueCategory = lvalue
# 16| getArgument(0): [Literal] 1
# 16| Type = [IntType] int
# 16| Value = [Literal] 1
# 16| ValueCategory = prvalue
# 17| getStmt(2): [ReturnStmt] return ...
# 19| [CopyAssignmentOperator] Bad::Point& Bad::Point::operator=(Bad::Point const&)
# 19| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Point &
# 19| [MoveAssignmentOperator] Bad::Point& Bad::Point::operator=(Bad::Point&&)
# 19| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Point &&
# 19| [CopyConstructor] void Bad::Point::Point(Bad::Point const&)
# 19| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Point &
# 19| <initializations>:
# 19| getInitializer(0): [ConstructorFieldInit] constructor init of field x
# 19| Type = [IntType] int
# 19| ValueCategory = prvalue
# 19| getExpr(): [Literal] Unknown literal
# 19| Type = [IntType] int
# 19| ValueCategory = prvalue
# 19| getInitializer(1): [ConstructorFieldInit] constructor init of field y
# 19| Type = [IntType] int
# 19| ValueCategory = prvalue
# 19| getExpr(): [Literal] Unknown literal
# 19| Type = [IntType] int
# 19| ValueCategory = prvalue
# 19| getEntryPoint(): [BlockStmt] { ... }
# 19| getStmt(0): [ReturnStmt] return ...
# 19| [MoveConstructor] void Bad::Point::Point(Bad::Point&&)
# 19| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Point &&
# 22| [Constructor] void Bad::Point::Point()
# 22| <params>:
# 22| <initializations>:
# 22| getEntryPoint(): [BlockStmt] { ... }
# 23| getStmt(0): [ReturnStmt] return ...
# 26| [TopLevelFunction] void Bad::CallCopyConstructor(Bad::Point const&)
# 26| <params>:
# 26| getParameter(0): [Parameter] a
# 26| Type = [LValueReferenceType] const Point &
# 26| getEntryPoint(): [BlockStmt] { ... }
# 27| getStmt(0): [DeclStmt] declaration
# 27| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 27| Type = [Struct] Point
# 27| getVariable().getInitializer(): [Initializer] initializer for b
# 27| getExpr(): [VariableAccess] a
# 27| Type = [LValueReferenceType] const Point &
# 27| ValueCategory = prvalue(load)
# 27| getExpr().getFullyConverted(): [CStyleCast] (Point)...
# 27| Conversion = [GlvalueConversion] glvalue conversion
# 27| Type = [Struct] Point
# 27| ValueCategory = prvalue(load)
# 27| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 27| Type = [SpecifiedType] const Point
# 27| ValueCategory = lvalue
# 28| getStmt(1): [ReturnStmt] return ...
# 30| [TopLevelFunction] void Bad::errorExpr()
# 30| <params>:
# 30| getEntryPoint(): [BlockStmt] { ... }
# 31| getStmt(0): [DeclStmt] declaration
# 31| getDeclarationEntry(0): [VariableDeclarationEntry] definition of intref
# 31| Type = [LValueReferenceType] int &
# 31| getVariable().getInitializer(): [Initializer] initializer for intref
# 31| getExpr(): [ErrorExpr] <error expr>
# 31| Type = [ErroneousType] error
# 31| ValueCategory = prvalue
# 32| getStmt(1): [DeclStmt] declaration
# 32| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 32| Type = [IntType] int
# 32| getVariable().getInitializer(): [Initializer] initializer for x
# 32| getExpr(): [ErrorExpr] <error expr>
# 32| Type = [ErroneousType] error
# 32| ValueCategory = prvalue
# 33| getStmt(2): [ExprStmt] ExprStmt
# 33| getExpr(): [AssignExpr] ... = ...
# 33| Type = [IntType] int
# 33| ValueCategory = lvalue
# 33| getLValue(): [VariableAccess] x
# 33| Type = [IntType] int
# 33| ValueCategory = lvalue
# 33| getRValue(): [ErrorExpr] <error expr>
# 33| Type = [ErroneousType] error
# 33| ValueCategory = prvalue(load)
# 34| getStmt(3): [ReturnStmt] return ...
clang.cpp:
# 5| [TopLevelFunction] int* globalIntAddress()
# 5| <params>:
# 5| getEntryPoint(): [BlockStmt] { ... }
# 6| getStmt(0): [ReturnStmt] return ...
# 6| getExpr(): [BuiltInOperationBuiltInAddressOf] __builtin_addressof ...
# 6| Type = [IntPointerType] int *
# 6| ValueCategory = prvalue
# 6| getOperand(): [VariableAccess] globalInt
# 6| Type = [IntType] int
# 6| ValueCategory = lvalue
complex.c:
# 1| [TopLevelFunction] void complex_literals()
# 1| <params>:
# 1| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [DeclStmt] declaration
# 2| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cf
# 2| Type = [ArithmeticType] _Complex float
# 2| getVariable().getInitializer(): [Initializer] initializer for cf
# 2| getExpr(): [Literal] 2.0
# 2| Type = [DoubleType] double
# 2| Value = [Literal] 2.0
# 2| ValueCategory = prvalue
# 2| getExpr().getFullyConverted(): [CStyleCast] (_Complex float)...
# 2| Conversion = [FloatingPointConversion] floating point conversion
# 2| Type = [ArithmeticType] _Complex float
# 2| ValueCategory = prvalue
# 3| getStmt(1): [ExprStmt] ExprStmt
# 3| getExpr(): [AssignExpr] ... = ...
# 3| Type = [ArithmeticType] _Complex float
# 3| ValueCategory = prvalue
# 3| getLValue(): [VariableAccess] cf
# 3| Type = [ArithmeticType] _Complex float
# 3| ValueCategory = lvalue
# 3| getRValue(): [Literal] 1.0i
# 3| Type = [ArithmeticType] _Imaginary float
# 3| Value = [Literal] 1.0i
# 3| ValueCategory = prvalue
# 3| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 3| Conversion = [FloatingPointConversion] floating point conversion
# 3| Type = [ArithmeticType] _Complex float
# 3| ValueCategory = prvalue
# 4| getStmt(2): [DeclStmt] declaration
# 4| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cd
# 4| Type = [ArithmeticType] _Complex double
# 4| getVariable().getInitializer(): [Initializer] initializer for cd
# 4| getExpr(): [Literal] 3.0
# 4| Type = [DoubleType] double
# 4| Value = [Literal] 3.0
# 4| ValueCategory = prvalue
# 4| getExpr().getFullyConverted(): [CStyleCast] (_Complex double)...
# 4| Conversion = [FloatingPointConversion] floating point conversion
# 4| Type = [ArithmeticType] _Complex double
# 4| ValueCategory = prvalue
# 5| getStmt(3): [ExprStmt] ExprStmt
# 5| getExpr(): [AssignExpr] ... = ...
# 5| Type = [ArithmeticType] _Complex double
# 5| ValueCategory = prvalue
# 5| getLValue(): [VariableAccess] cd
# 5| Type = [ArithmeticType] _Complex double
# 5| ValueCategory = lvalue
# 5| getRValue(): [Literal] 1.0i
# 5| Type = [ArithmeticType] _Imaginary float
# 5| Value = [Literal] 1.0i
# 5| ValueCategory = prvalue
# 5| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 5| Conversion = [FloatingPointConversion] floating point conversion
# 5| Type = [ArithmeticType] _Complex double
# 5| ValueCategory = prvalue
# 6| getStmt(4): [DeclStmt] declaration
# 6| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cld
# 6| Type = [ArithmeticType] _Complex long double
# 6| getVariable().getInitializer(): [Initializer] initializer for cld
# 6| getExpr(): [Literal] 5.0
# 6| Type = [DoubleType] double
# 6| Value = [Literal] 5.0
# 6| ValueCategory = prvalue
# 6| getExpr().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 6| Conversion = [FloatingPointConversion] floating point conversion
# 6| Type = [ArithmeticType] _Complex long double
# 6| ValueCategory = prvalue
# 7| getStmt(5): [ExprStmt] ExprStmt
# 7| getExpr(): [AssignExpr] ... = ...
# 7| Type = [ArithmeticType] _Complex long double
# 7| ValueCategory = prvalue
# 7| getLValue(): [VariableAccess] cld
# 7| Type = [ArithmeticType] _Complex long double
# 7| ValueCategory = lvalue
# 7| getRValue(): [Literal] 1.0i
# 7| Type = [ArithmeticType] _Imaginary float
# 7| Value = [Literal] 1.0i
# 7| ValueCategory = prvalue
# 7| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 7| Conversion = [FloatingPointConversion] floating point conversion
# 7| Type = [ArithmeticType] _Complex long double
# 7| ValueCategory = prvalue
# 9| getStmt(6): [DeclStmt] declaration
# 9| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jf
# 9| Type = [ArithmeticType] _Imaginary float
# 9| getVariable().getInitializer(): [Initializer] initializer for jf
# 9| getExpr(): [Literal] 1.0i
# 9| Type = [ArithmeticType] _Imaginary float
# 9| Value = [Literal] 1.0i
# 9| ValueCategory = prvalue
# 10| getStmt(7): [DeclStmt] declaration
# 10| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jd
# 10| Type = [ArithmeticType] _Imaginary double
# 10| getVariable().getInitializer(): [Initializer] initializer for jd
# 10| getExpr(): [Literal] 1.0i
# 10| Type = [ArithmeticType] _Imaginary float
# 10| Value = [Literal] 1.0i
# 10| ValueCategory = prvalue
# 10| getExpr().getFullyConverted(): [CStyleCast] (_Imaginary double)...
# 10| Conversion = [FloatingPointConversion] floating point conversion
# 10| Type = [ArithmeticType] _Imaginary double
# 10| ValueCategory = prvalue
# 11| getStmt(8): [DeclStmt] declaration
# 11| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jld
# 11| Type = [ArithmeticType] _Imaginary long double
# 11| getVariable().getInitializer(): [Initializer] initializer for jld
# 11| getExpr(): [Literal] 1.0i
# 11| Type = [ArithmeticType] _Imaginary float
# 11| Value = [Literal] 1.0i
# 11| ValueCategory = prvalue
# 11| getExpr().getFullyConverted(): [CStyleCast] (_Imaginary long double)...
# 11| Conversion = [FloatingPointConversion] floating point conversion
# 11| Type = [ArithmeticType] _Imaginary long double
# 11| ValueCategory = prvalue
# 12| getStmt(9): [ReturnStmt] return ...
# 14| [TopLevelFunction] void complex_arithmetic()
# 14| <params>:
# 14| getEntryPoint(): [BlockStmt] { ... }
# 15| getStmt(0): [DeclStmt] declaration
# 15| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f1
# 15| Type = [FloatType] float
# 15| getVariable().getInitializer(): [Initializer] initializer for f1
# 15| getExpr(): [Literal] 5.0
# 15| Type = [DoubleType] double
# 15| Value = [Literal] 5.0
# 15| ValueCategory = prvalue
# 15| getExpr().getFullyConverted(): [CStyleCast] (float)...
# 15| Conversion = [FloatingPointConversion] floating point conversion
# 15| Type = [FloatType] float
# 15| Value = [CStyleCast] 5.0
# 15| ValueCategory = prvalue
# 16| getStmt(1): [DeclStmt] declaration
# 16| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f2
# 16| Type = [FloatType] float
# 16| getVariable().getInitializer(): [Initializer] initializer for f2
# 16| getExpr(): [Literal] 7.0
# 16| Type = [DoubleType] double
# 16| Value = [Literal] 7.0
# 16| ValueCategory = prvalue
# 16| getExpr().getFullyConverted(): [CStyleCast] (float)...
# 16| Conversion = [FloatingPointConversion] floating point conversion
# 16| Type = [FloatType] float
# 16| Value = [CStyleCast] 7.0
# 16| ValueCategory = prvalue
# 17| getStmt(2): [DeclStmt] declaration
# 17| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f3
# 17| Type = [FloatType] float
# 18| getStmt(3): [DeclStmt] declaration
# 18| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cf1
# 18| Type = [ArithmeticType] _Complex float
# 18| getVariable().getInitializer(): [Initializer] initializer for cf1
# 18| getExpr(): [Literal] 2.0
# 18| Type = [DoubleType] double
# 18| Value = [Literal] 2.0
# 18| ValueCategory = prvalue
# 18| getExpr().getFullyConverted(): [CStyleCast] (_Complex float)...
# 18| Conversion = [FloatingPointConversion] floating point conversion
# 18| Type = [ArithmeticType] _Complex float
# 18| ValueCategory = prvalue
# 19| getStmt(4): [DeclStmt] declaration
# 19| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cf2
# 19| Type = [ArithmeticType] _Complex float
# 19| getVariable().getInitializer(): [Initializer] initializer for cf2
# 19| getExpr(): [Literal] 1.0i
# 19| Type = [ArithmeticType] _Imaginary float
# 19| Value = [Literal] 1.0i
# 19| ValueCategory = prvalue
# 19| getExpr().getFullyConverted(): [CStyleCast] (_Complex float)...
# 19| Conversion = [FloatingPointConversion] floating point conversion
# 19| Type = [ArithmeticType] _Complex float
# 19| ValueCategory = prvalue
# 20| getStmt(5): [DeclStmt] declaration
# 20| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cf3
# 20| Type = [ArithmeticType] _Complex float
# 21| getStmt(6): [DeclStmt] declaration
# 21| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jf1
# 21| Type = [ArithmeticType] _Imaginary float
# 21| getVariable().getInitializer(): [Initializer] initializer for jf1
# 21| getExpr(): [Literal] 1.0i
# 21| Type = [ArithmeticType] _Imaginary float
# 21| Value = [Literal] 1.0i
# 21| ValueCategory = prvalue
# 22| getStmt(7): [DeclStmt] declaration
# 22| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jf2
# 22| Type = [ArithmeticType] _Imaginary float
# 22| getVariable().getInitializer(): [Initializer] initializer for jf2
# 22| getExpr(): [Literal] 1.0i
# 22| Type = [ArithmeticType] _Imaginary float
# 22| Value = [Literal] 1.0i
# 22| ValueCategory = prvalue
# 23| getStmt(8): [DeclStmt] declaration
# 23| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jf3
# 23| Type = [ArithmeticType] _Imaginary float
# 26| getStmt(9): [ExprStmt] ExprStmt
# 26| getExpr(): [AssignExpr] ... = ...
# 26| Type = [ArithmeticType] _Complex float
# 26| ValueCategory = prvalue
# 26| getLValue(): [VariableAccess] cf3
# 26| Type = [ArithmeticType] _Complex float
# 26| ValueCategory = lvalue
# 26| getRValue(): [UnaryPlusExpr] + ...
# 26| Type = [ArithmeticType] _Complex float
# 26| ValueCategory = prvalue
# 26| getOperand(): [VariableAccess] cf1
# 26| Type = [ArithmeticType] _Complex float
# 26| ValueCategory = prvalue(load)
# 27| getStmt(10): [ExprStmt] ExprStmt
# 27| getExpr(): [AssignExpr] ... = ...
# 27| Type = [ArithmeticType] _Complex float
# 27| ValueCategory = prvalue
# 27| getLValue(): [VariableAccess] cf3
# 27| Type = [ArithmeticType] _Complex float
# 27| ValueCategory = lvalue
# 27| getRValue(): [UnaryMinusExpr] - ...
# 27| Type = [ArithmeticType] _Complex float
# 27| ValueCategory = prvalue
# 27| getOperand(): [VariableAccess] cf1
# 27| Type = [ArithmeticType] _Complex float
# 27| ValueCategory = prvalue(load)
# 30| getStmt(11): [ExprStmt] ExprStmt
# 30| getExpr(): [AssignExpr] ... = ...
# 30| Type = [ArithmeticType] _Complex float
# 30| ValueCategory = prvalue
# 30| getLValue(): [VariableAccess] cf3
# 30| Type = [ArithmeticType] _Complex float
# 30| ValueCategory = lvalue
# 30| getRValue(): [AddExpr] ... + ...
# 30| Type = [ArithmeticType] _Complex float
# 30| ValueCategory = prvalue
# 30| getLeftOperand(): [VariableAccess] cf1
# 30| Type = [ArithmeticType] _Complex float
# 30| ValueCategory = prvalue(load)
# 30| getRightOperand(): [VariableAccess] cf2
# 30| Type = [ArithmeticType] _Complex float
# 30| ValueCategory = prvalue(load)
# 31| getStmt(12): [ExprStmt] ExprStmt
# 31| getExpr(): [AssignExpr] ... = ...
# 31| Type = [ArithmeticType] _Complex float
# 31| ValueCategory = prvalue
# 31| getLValue(): [VariableAccess] cf3
# 31| Type = [ArithmeticType] _Complex float
# 31| ValueCategory = lvalue
# 31| getRValue(): [SubExpr] ... - ...
# 31| Type = [ArithmeticType] _Complex float
# 31| ValueCategory = prvalue
# 31| getLeftOperand(): [VariableAccess] cf1
# 31| Type = [ArithmeticType] _Complex float
# 31| ValueCategory = prvalue(load)
# 31| getRightOperand(): [VariableAccess] cf2
# 31| Type = [ArithmeticType] _Complex float
# 31| ValueCategory = prvalue(load)
# 32| getStmt(13): [ExprStmt] ExprStmt
# 32| getExpr(): [AssignExpr] ... = ...
# 32| Type = [ArithmeticType] _Complex float
# 32| ValueCategory = prvalue
# 32| getLValue(): [VariableAccess] cf3
# 32| Type = [ArithmeticType] _Complex float
# 32| ValueCategory = lvalue
# 32| getRValue(): [MulExpr] ... * ...
# 32| Type = [ArithmeticType] _Complex float
# 32| ValueCategory = prvalue
# 32| getLeftOperand(): [VariableAccess] cf1
# 32| Type = [ArithmeticType] _Complex float
# 32| ValueCategory = prvalue(load)
# 32| getRightOperand(): [VariableAccess] cf2
# 32| Type = [ArithmeticType] _Complex float
# 32| ValueCategory = prvalue(load)
# 33| getStmt(14): [ExprStmt] ExprStmt
# 33| getExpr(): [AssignExpr] ... = ...
# 33| Type = [ArithmeticType] _Complex float
# 33| ValueCategory = prvalue
# 33| getLValue(): [VariableAccess] cf3
# 33| Type = [ArithmeticType] _Complex float
# 33| ValueCategory = lvalue
# 33| getRValue(): [DivExpr] ... / ...
# 33| Type = [ArithmeticType] _Complex float
# 33| ValueCategory = prvalue
# 33| getLeftOperand(): [VariableAccess] cf1
# 33| Type = [ArithmeticType] _Complex float
# 33| ValueCategory = prvalue(load)
# 33| getRightOperand(): [VariableAccess] cf2
# 33| Type = [ArithmeticType] _Complex float
# 33| ValueCategory = prvalue(load)
# 36| getStmt(15): [ExprStmt] ExprStmt
# 36| getExpr(): [AssignExpr] ... = ...
# 36| Type = [ArithmeticType] _Imaginary float
# 36| ValueCategory = prvalue
# 36| getLValue(): [VariableAccess] jf3
# 36| Type = [ArithmeticType] _Imaginary float
# 36| ValueCategory = lvalue
# 36| getRValue(): [UnaryPlusExpr] + ...
# 36| Type = [ArithmeticType] _Imaginary float
# 36| ValueCategory = prvalue
# 36| getOperand(): [VariableAccess] jf1
# 36| Type = [ArithmeticType] _Imaginary float
# 36| ValueCategory = prvalue(load)
# 37| getStmt(16): [ExprStmt] ExprStmt
# 37| getExpr(): [AssignExpr] ... = ...
# 37| Type = [ArithmeticType] _Imaginary float
# 37| ValueCategory = prvalue
# 37| getLValue(): [VariableAccess] jf3
# 37| Type = [ArithmeticType] _Imaginary float
# 37| ValueCategory = lvalue
# 37| getRValue(): [UnaryMinusExpr] - ...
# 37| Type = [ArithmeticType] _Imaginary float
# 37| ValueCategory = prvalue
# 37| getOperand(): [VariableAccess] jf1
# 37| Type = [ArithmeticType] _Imaginary float
# 37| ValueCategory = prvalue(load)
# 40| getStmt(17): [ExprStmt] ExprStmt
# 40| getExpr(): [AssignExpr] ... = ...
# 40| Type = [ArithmeticType] _Imaginary float
# 40| ValueCategory = prvalue
# 40| getLValue(): [VariableAccess] jf3
# 40| Type = [ArithmeticType] _Imaginary float
# 40| ValueCategory = lvalue
# 40| getRValue(): [AddExpr] ... + ...
# 40| Type = [ArithmeticType] _Imaginary float
# 40| ValueCategory = prvalue
# 40| getLeftOperand(): [VariableAccess] jf1
# 40| Type = [ArithmeticType] _Imaginary float
# 40| ValueCategory = prvalue(load)
# 40| getRightOperand(): [VariableAccess] jf2
# 40| Type = [ArithmeticType] _Imaginary float
# 40| ValueCategory = prvalue(load)
# 41| getStmt(18): [ExprStmt] ExprStmt
# 41| getExpr(): [AssignExpr] ... = ...
# 41| Type = [ArithmeticType] _Imaginary float
# 41| ValueCategory = prvalue
# 41| getLValue(): [VariableAccess] jf3
# 41| Type = [ArithmeticType] _Imaginary float
# 41| ValueCategory = lvalue
# 41| getRValue(): [SubExpr] ... - ...
# 41| Type = [ArithmeticType] _Imaginary float
# 41| ValueCategory = prvalue
# 41| getLeftOperand(): [VariableAccess] jf1
# 41| Type = [ArithmeticType] _Imaginary float
# 41| ValueCategory = prvalue(load)
# 41| getRightOperand(): [VariableAccess] jf2
# 41| Type = [ArithmeticType] _Imaginary float
# 41| ValueCategory = prvalue(load)
# 42| getStmt(19): [ExprStmt] ExprStmt
# 42| getExpr(): [AssignExpr] ... = ...
# 42| Type = [FloatType] float
# 42| ValueCategory = prvalue
# 42| getLValue(): [VariableAccess] f3
# 42| Type = [FloatType] float
# 42| ValueCategory = lvalue
# 42| getRValue(): [ImaginaryMulExpr] ... * ...
# 42| Type = [FloatType] float
# 42| ValueCategory = prvalue
# 42| getLeftOperand(): [VariableAccess] jf1
# 42| Type = [ArithmeticType] _Imaginary float
# 42| ValueCategory = prvalue(load)
# 42| getRightOperand(): [VariableAccess] jf2
# 42| Type = [ArithmeticType] _Imaginary float
# 42| ValueCategory = prvalue(load)
# 43| getStmt(20): [ExprStmt] ExprStmt
# 43| getExpr(): [AssignExpr] ... = ...
# 43| Type = [FloatType] float
# 43| ValueCategory = prvalue
# 43| getLValue(): [VariableAccess] f3
# 43| Type = [FloatType] float
# 43| ValueCategory = lvalue
# 43| getRValue(): [DivExpr] ... / ...
# 43| Type = [FloatType] float
# 43| ValueCategory = prvalue
# 43| getLeftOperand(): [VariableAccess] jf1
# 43| Type = [ArithmeticType] _Imaginary float
# 43| ValueCategory = prvalue(load)
# 43| getRightOperand(): [VariableAccess] jf2
# 43| Type = [ArithmeticType] _Imaginary float
# 43| ValueCategory = prvalue(load)
# 46| getStmt(21): [ExprStmt] ExprStmt
# 46| getExpr(): [AssignExpr] ... = ...
# 46| Type = [ArithmeticType] _Complex float
# 46| ValueCategory = prvalue
# 46| getLValue(): [VariableAccess] cf3
# 46| Type = [ArithmeticType] _Complex float
# 46| ValueCategory = lvalue
# 46| getRValue(): [ImaginaryRealAddExpr] ... + ...
# 46| Type = [ArithmeticType] _Complex float
# 46| ValueCategory = prvalue
# 46| getLeftOperand(): [VariableAccess] jf1
# 46| Type = [ArithmeticType] _Imaginary float
# 46| ValueCategory = prvalue(load)
# 46| getRightOperand(): [VariableAccess] f2
# 46| Type = [FloatType] float
# 46| ValueCategory = prvalue(load)
# 47| getStmt(22): [ExprStmt] ExprStmt
# 47| getExpr(): [AssignExpr] ... = ...
# 47| Type = [ArithmeticType] _Complex float
# 47| ValueCategory = prvalue
# 47| getLValue(): [VariableAccess] cf3
# 47| Type = [ArithmeticType] _Complex float
# 47| ValueCategory = lvalue
# 47| getRValue(): [ImaginaryRealSubExpr] ... - ...
# 47| Type = [ArithmeticType] _Complex float
# 47| ValueCategory = prvalue
# 47| getLeftOperand(): [VariableAccess] jf1
# 47| Type = [ArithmeticType] _Imaginary float
# 47| ValueCategory = prvalue(load)
# 47| getRightOperand(): [VariableAccess] f2
# 47| Type = [FloatType] float
# 47| ValueCategory = prvalue(load)
# 48| getStmt(23): [ExprStmt] ExprStmt
# 48| getExpr(): [AssignExpr] ... = ...
# 48| Type = [ArithmeticType] _Imaginary float
# 48| ValueCategory = prvalue
# 48| getLValue(): [VariableAccess] jf3
# 48| Type = [ArithmeticType] _Imaginary float
# 48| ValueCategory = lvalue
# 48| getRValue(): [MulExpr] ... * ...
# 48| Type = [ArithmeticType] _Imaginary float
# 48| ValueCategory = prvalue
# 48| getLeftOperand(): [VariableAccess] jf1
# 48| Type = [ArithmeticType] _Imaginary float
# 48| ValueCategory = prvalue(load)
# 48| getRightOperand(): [VariableAccess] f2
# 48| Type = [FloatType] float
# 48| ValueCategory = prvalue(load)
# 49| getStmt(24): [ExprStmt] ExprStmt
# 49| getExpr(): [AssignExpr] ... = ...
# 49| Type = [ArithmeticType] _Imaginary float
# 49| ValueCategory = prvalue
# 49| getLValue(): [VariableAccess] jf3
# 49| Type = [ArithmeticType] _Imaginary float
# 49| ValueCategory = lvalue
# 49| getRValue(): [DivExpr] ... / ...
# 49| Type = [ArithmeticType] _Imaginary float
# 49| ValueCategory = prvalue
# 49| getLeftOperand(): [VariableAccess] jf1
# 49| Type = [ArithmeticType] _Imaginary float
# 49| ValueCategory = prvalue(load)
# 49| getRightOperand(): [VariableAccess] f2
# 49| Type = [FloatType] float
# 49| ValueCategory = prvalue(load)
# 52| getStmt(25): [ExprStmt] ExprStmt
# 52| getExpr(): [AssignExpr] ... = ...
# 52| Type = [ArithmeticType] _Complex float
# 52| ValueCategory = prvalue
# 52| getLValue(): [VariableAccess] cf3
# 52| Type = [ArithmeticType] _Complex float
# 52| ValueCategory = lvalue
# 52| getRValue(): [RealImaginaryAddExpr] ... + ...
# 52| Type = [ArithmeticType] _Complex float
# 52| ValueCategory = prvalue
# 52| getLeftOperand(): [VariableAccess] f1
# 52| Type = [FloatType] float
# 52| ValueCategory = prvalue(load)
# 52| getRightOperand(): [VariableAccess] jf2
# 52| Type = [ArithmeticType] _Imaginary float
# 52| ValueCategory = prvalue(load)
# 53| getStmt(26): [ExprStmt] ExprStmt
# 53| getExpr(): [AssignExpr] ... = ...
# 53| Type = [ArithmeticType] _Complex float
# 53| ValueCategory = prvalue
# 53| getLValue(): [VariableAccess] cf3
# 53| Type = [ArithmeticType] _Complex float
# 53| ValueCategory = lvalue
# 53| getRValue(): [RealImaginarySubExpr] ... - ...
# 53| Type = [ArithmeticType] _Complex float
# 53| ValueCategory = prvalue
# 53| getLeftOperand(): [VariableAccess] f1
# 53| Type = [FloatType] float
# 53| ValueCategory = prvalue(load)
# 53| getRightOperand(): [VariableAccess] jf2
# 53| Type = [ArithmeticType] _Imaginary float
# 53| ValueCategory = prvalue(load)
# 54| getStmt(27): [ExprStmt] ExprStmt
# 54| getExpr(): [AssignExpr] ... = ...
# 54| Type = [ArithmeticType] _Imaginary float
# 54| ValueCategory = prvalue
# 54| getLValue(): [VariableAccess] jf3
# 54| Type = [ArithmeticType] _Imaginary float
# 54| ValueCategory = lvalue
# 54| getRValue(): [MulExpr] ... * ...
# 54| Type = [ArithmeticType] _Imaginary float
# 54| ValueCategory = prvalue
# 54| getLeftOperand(): [VariableAccess] f1
# 54| Type = [FloatType] float
# 54| ValueCategory = prvalue(load)
# 54| getRightOperand(): [VariableAccess] jf2
# 54| Type = [ArithmeticType] _Imaginary float
# 54| ValueCategory = prvalue(load)
# 55| getStmt(28): [ExprStmt] ExprStmt
# 55| getExpr(): [AssignExpr] ... = ...
# 55| Type = [ArithmeticType] _Imaginary float
# 55| ValueCategory = prvalue
# 55| getLValue(): [VariableAccess] jf3
# 55| Type = [ArithmeticType] _Imaginary float
# 55| ValueCategory = lvalue
# 55| getRValue(): [ImaginaryDivExpr] ... / ...
# 55| Type = [ArithmeticType] _Imaginary float
# 55| ValueCategory = prvalue
# 55| getLeftOperand(): [VariableAccess] f1
# 55| Type = [FloatType] float
# 55| ValueCategory = prvalue(load)
# 55| getRightOperand(): [VariableAccess] jf2
# 55| Type = [ArithmeticType] _Imaginary float
# 55| ValueCategory = prvalue(load)
# 56| getStmt(29): [ReturnStmt] return ...
# 58| [TopLevelFunction] void complex_conversions()
# 58| <params>:
# 58| getEntryPoint(): [BlockStmt] { ... }
# 59| getStmt(0): [DeclStmt] declaration
# 59| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f
# 59| Type = [FloatType] float
# 59| getVariable().getInitializer(): [Initializer] initializer for f
# 59| getExpr(): [Literal] 2.0
# 59| Type = [DoubleType] double
# 59| Value = [Literal] 2.0
# 59| ValueCategory = prvalue
# 59| getExpr().getFullyConverted(): [CStyleCast] (float)...
# 59| Conversion = [FloatingPointConversion] floating point conversion
# 59| Type = [FloatType] float
# 59| Value = [CStyleCast] 2.0
# 59| ValueCategory = prvalue
# 60| getStmt(1): [DeclStmt] declaration
# 60| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 60| Type = [DoubleType] double
# 60| getVariable().getInitializer(): [Initializer] initializer for d
# 60| getExpr(): [Literal] 3.0
# 60| Type = [DoubleType] double
# 60| Value = [Literal] 3.0
# 60| ValueCategory = prvalue
# 61| getStmt(2): [DeclStmt] declaration
# 61| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ld
# 61| Type = [LongDoubleType] long double
# 61| getVariable().getInitializer(): [Initializer] initializer for ld
# 61| getExpr(): [Literal] 5.0
# 61| Type = [DoubleType] double
# 61| Value = [Literal] 5.0
# 61| ValueCategory = prvalue
# 61| getExpr().getFullyConverted(): [CStyleCast] (long double)...
# 61| Conversion = [FloatingPointConversion] floating point conversion
# 61| Type = [LongDoubleType] long double
# 61| Value = [CStyleCast] 5.0
# 61| ValueCategory = prvalue
# 62| getStmt(3): [DeclStmt] declaration
# 62| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cf
# 62| Type = [ArithmeticType] _Complex float
# 62| getVariable().getInitializer(): [Initializer] initializer for cf
# 62| getExpr(): [Literal] 7.0
# 62| Type = [DoubleType] double
# 62| Value = [Literal] 7.0
# 62| ValueCategory = prvalue
# 62| getExpr().getFullyConverted(): [CStyleCast] (_Complex float)...
# 62| Conversion = [FloatingPointConversion] floating point conversion
# 62| Type = [ArithmeticType] _Complex float
# 62| ValueCategory = prvalue
# 63| getStmt(4): [DeclStmt] declaration
# 63| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cd
# 63| Type = [ArithmeticType] _Complex double
# 63| getVariable().getInitializer(): [Initializer] initializer for cd
# 63| getExpr(): [Literal] 11.0
# 63| Type = [DoubleType] double
# 63| Value = [Literal] 11.0
# 63| ValueCategory = prvalue
# 63| getExpr().getFullyConverted(): [CStyleCast] (_Complex double)...
# 63| Conversion = [FloatingPointConversion] floating point conversion
# 63| Type = [ArithmeticType] _Complex double
# 63| ValueCategory = prvalue
# 64| getStmt(5): [DeclStmt] declaration
# 64| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cld
# 64| Type = [ArithmeticType] _Complex long double
# 64| getVariable().getInitializer(): [Initializer] initializer for cld
# 64| getExpr(): [Literal] 13.0
# 64| Type = [DoubleType] double
# 64| Value = [Literal] 13.0
# 64| ValueCategory = prvalue
# 64| getExpr().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 64| Conversion = [FloatingPointConversion] floating point conversion
# 64| Type = [ArithmeticType] _Complex long double
# 64| ValueCategory = prvalue
# 65| getStmt(6): [DeclStmt] declaration
# 65| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jf
# 65| Type = [ArithmeticType] _Imaginary float
# 65| getVariable().getInitializer(): [Initializer] initializer for jf
# 65| getExpr(): [Literal] 1.0i
# 65| Type = [ArithmeticType] _Imaginary float
# 65| Value = [Literal] 1.0i
# 65| ValueCategory = prvalue
# 66| getStmt(7): [DeclStmt] declaration
# 66| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jd
# 66| Type = [ArithmeticType] _Imaginary double
# 66| getVariable().getInitializer(): [Initializer] initializer for jd
# 66| getExpr(): [Literal] 1.0i
# 66| Type = [ArithmeticType] _Imaginary float
# 66| Value = [Literal] 1.0i
# 66| ValueCategory = prvalue
# 66| getExpr().getFullyConverted(): [CStyleCast] (_Imaginary double)...
# 66| Conversion = [FloatingPointConversion] floating point conversion
# 66| Type = [ArithmeticType] _Imaginary double
# 66| ValueCategory = prvalue
# 67| getStmt(8): [DeclStmt] declaration
# 67| getDeclarationEntry(0): [VariableDeclarationEntry] definition of jld
# 67| Type = [ArithmeticType] _Imaginary long double
# 67| getVariable().getInitializer(): [Initializer] initializer for jld
# 67| getExpr(): [Literal] 1.0i
# 67| Type = [ArithmeticType] _Imaginary float
# 67| Value = [Literal] 1.0i
# 67| ValueCategory = prvalue
# 67| getExpr().getFullyConverted(): [CStyleCast] (_Imaginary long double)...
# 67| Conversion = [FloatingPointConversion] floating point conversion
# 67| Type = [ArithmeticType] _Imaginary long double
# 67| ValueCategory = prvalue
# 70| getStmt(9): [ExprStmt] ExprStmt
# 70| getExpr(): [AssignExpr] ... = ...
# 70| Type = [ArithmeticType] _Complex float
# 70| ValueCategory = prvalue
# 70| getLValue(): [VariableAccess] cf
# 70| Type = [ArithmeticType] _Complex float
# 70| ValueCategory = lvalue
# 70| getRValue(): [VariableAccess] cf
# 70| Type = [ArithmeticType] _Complex float
# 70| ValueCategory = prvalue(load)
# 71| getStmt(10): [ExprStmt] ExprStmt
# 71| getExpr(): [AssignExpr] ... = ...
# 71| Type = [ArithmeticType] _Complex float
# 71| ValueCategory = prvalue
# 71| getLValue(): [VariableAccess] cf
# 71| Type = [ArithmeticType] _Complex float
# 71| ValueCategory = lvalue
# 71| getRValue(): [VariableAccess] cd
# 71| Type = [ArithmeticType] _Complex double
# 71| ValueCategory = prvalue(load)
# 71| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 71| Conversion = [FloatingPointConversion] floating point conversion
# 71| Type = [ArithmeticType] _Complex float
# 71| ValueCategory = prvalue
# 72| getStmt(11): [ExprStmt] ExprStmt
# 72| getExpr(): [AssignExpr] ... = ...
# 72| Type = [ArithmeticType] _Complex float
# 72| ValueCategory = prvalue
# 72| getLValue(): [VariableAccess] cf
# 72| Type = [ArithmeticType] _Complex float
# 72| ValueCategory = lvalue
# 72| getRValue(): [VariableAccess] cld
# 72| Type = [ArithmeticType] _Complex long double
# 72| ValueCategory = prvalue(load)
# 72| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 72| Conversion = [FloatingPointConversion] floating point conversion
# 72| Type = [ArithmeticType] _Complex float
# 72| ValueCategory = prvalue
# 73| getStmt(12): [ExprStmt] ExprStmt
# 73| getExpr(): [AssignExpr] ... = ...
# 73| Type = [ArithmeticType] _Complex double
# 73| ValueCategory = prvalue
# 73| getLValue(): [VariableAccess] cd
# 73| Type = [ArithmeticType] _Complex double
# 73| ValueCategory = lvalue
# 73| getRValue(): [VariableAccess] cf
# 73| Type = [ArithmeticType] _Complex float
# 73| ValueCategory = prvalue(load)
# 73| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 73| Conversion = [FloatingPointConversion] floating point conversion
# 73| Type = [ArithmeticType] _Complex double
# 73| ValueCategory = prvalue
# 74| getStmt(13): [ExprStmt] ExprStmt
# 74| getExpr(): [AssignExpr] ... = ...
# 74| Type = [ArithmeticType] _Complex double
# 74| ValueCategory = prvalue
# 74| getLValue(): [VariableAccess] cd
# 74| Type = [ArithmeticType] _Complex double
# 74| ValueCategory = lvalue
# 74| getRValue(): [VariableAccess] cd
# 74| Type = [ArithmeticType] _Complex double
# 74| ValueCategory = prvalue(load)
# 75| getStmt(14): [ExprStmt] ExprStmt
# 75| getExpr(): [AssignExpr] ... = ...
# 75| Type = [ArithmeticType] _Complex double
# 75| ValueCategory = prvalue
# 75| getLValue(): [VariableAccess] cd
# 75| Type = [ArithmeticType] _Complex double
# 75| ValueCategory = lvalue
# 75| getRValue(): [VariableAccess] cld
# 75| Type = [ArithmeticType] _Complex long double
# 75| ValueCategory = prvalue(load)
# 75| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 75| Conversion = [FloatingPointConversion] floating point conversion
# 75| Type = [ArithmeticType] _Complex double
# 75| ValueCategory = prvalue
# 76| getStmt(15): [ExprStmt] ExprStmt
# 76| getExpr(): [AssignExpr] ... = ...
# 76| Type = [ArithmeticType] _Complex long double
# 76| ValueCategory = prvalue
# 76| getLValue(): [VariableAccess] cld
# 76| Type = [ArithmeticType] _Complex long double
# 76| ValueCategory = lvalue
# 76| getRValue(): [VariableAccess] cf
# 76| Type = [ArithmeticType] _Complex float
# 76| ValueCategory = prvalue(load)
# 76| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 76| Conversion = [FloatingPointConversion] floating point conversion
# 76| Type = [ArithmeticType] _Complex long double
# 76| ValueCategory = prvalue
# 77| getStmt(16): [ExprStmt] ExprStmt
# 77| getExpr(): [AssignExpr] ... = ...
# 77| Type = [ArithmeticType] _Complex long double
# 77| ValueCategory = prvalue
# 77| getLValue(): [VariableAccess] cld
# 77| Type = [ArithmeticType] _Complex long double
# 77| ValueCategory = lvalue
# 77| getRValue(): [VariableAccess] cd
# 77| Type = [ArithmeticType] _Complex double
# 77| ValueCategory = prvalue(load)
# 77| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 77| Conversion = [FloatingPointConversion] floating point conversion
# 77| Type = [ArithmeticType] _Complex long double
# 77| ValueCategory = prvalue
# 78| getStmt(17): [ExprStmt] ExprStmt
# 78| getExpr(): [AssignExpr] ... = ...
# 78| Type = [ArithmeticType] _Complex long double
# 78| ValueCategory = prvalue
# 78| getLValue(): [VariableAccess] cld
# 78| Type = [ArithmeticType] _Complex long double
# 78| ValueCategory = lvalue
# 78| getRValue(): [VariableAccess] cld
# 78| Type = [ArithmeticType] _Complex long double
# 78| ValueCategory = prvalue(load)
# 81| getStmt(18): [ExprStmt] ExprStmt
# 81| getExpr(): [AssignExpr] ... = ...
# 81| Type = [ArithmeticType] _Complex float
# 81| ValueCategory = prvalue
# 81| getLValue(): [VariableAccess] cf
# 81| Type = [ArithmeticType] _Complex float
# 81| ValueCategory = lvalue
# 81| getRValue(): [VariableAccess] f
# 81| Type = [FloatType] float
# 81| ValueCategory = prvalue(load)
# 81| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 81| Conversion = [FloatingPointConversion] floating point conversion
# 81| Type = [ArithmeticType] _Complex float
# 81| ValueCategory = prvalue
# 82| getStmt(19): [ExprStmt] ExprStmt
# 82| getExpr(): [AssignExpr] ... = ...
# 82| Type = [ArithmeticType] _Complex float
# 82| ValueCategory = prvalue
# 82| getLValue(): [VariableAccess] cf
# 82| Type = [ArithmeticType] _Complex float
# 82| ValueCategory = lvalue
# 82| getRValue(): [VariableAccess] d
# 82| Type = [DoubleType] double
# 82| ValueCategory = prvalue(load)
# 82| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 82| Conversion = [FloatingPointConversion] floating point conversion
# 82| Type = [ArithmeticType] _Complex float
# 82| ValueCategory = prvalue
# 83| getStmt(20): [ExprStmt] ExprStmt
# 83| getExpr(): [AssignExpr] ... = ...
# 83| Type = [ArithmeticType] _Complex float
# 83| ValueCategory = prvalue
# 83| getLValue(): [VariableAccess] cf
# 83| Type = [ArithmeticType] _Complex float
# 83| ValueCategory = lvalue
# 83| getRValue(): [VariableAccess] ld
# 83| Type = [LongDoubleType] long double
# 83| ValueCategory = prvalue(load)
# 83| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 83| Conversion = [FloatingPointConversion] floating point conversion
# 83| Type = [ArithmeticType] _Complex float
# 83| ValueCategory = prvalue
# 84| getStmt(21): [ExprStmt] ExprStmt
# 84| getExpr(): [AssignExpr] ... = ...
# 84| Type = [ArithmeticType] _Complex double
# 84| ValueCategory = prvalue
# 84| getLValue(): [VariableAccess] cd
# 84| Type = [ArithmeticType] _Complex double
# 84| ValueCategory = lvalue
# 84| getRValue(): [VariableAccess] f
# 84| Type = [FloatType] float
# 84| ValueCategory = prvalue(load)
# 84| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 84| Conversion = [FloatingPointConversion] floating point conversion
# 84| Type = [ArithmeticType] _Complex double
# 84| ValueCategory = prvalue
# 85| getStmt(22): [ExprStmt] ExprStmt
# 85| getExpr(): [AssignExpr] ... = ...
# 85| Type = [ArithmeticType] _Complex double
# 85| ValueCategory = prvalue
# 85| getLValue(): [VariableAccess] cd
# 85| Type = [ArithmeticType] _Complex double
# 85| ValueCategory = lvalue
# 85| getRValue(): [VariableAccess] d
# 85| Type = [DoubleType] double
# 85| ValueCategory = prvalue(load)
# 85| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 85| Conversion = [FloatingPointConversion] floating point conversion
# 85| Type = [ArithmeticType] _Complex double
# 85| ValueCategory = prvalue
# 86| getStmt(23): [ExprStmt] ExprStmt
# 86| getExpr(): [AssignExpr] ... = ...
# 86| Type = [ArithmeticType] _Complex double
# 86| ValueCategory = prvalue
# 86| getLValue(): [VariableAccess] cd
# 86| Type = [ArithmeticType] _Complex double
# 86| ValueCategory = lvalue
# 86| getRValue(): [VariableAccess] ld
# 86| Type = [LongDoubleType] long double
# 86| ValueCategory = prvalue(load)
# 86| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 86| Conversion = [FloatingPointConversion] floating point conversion
# 86| Type = [ArithmeticType] _Complex double
# 86| ValueCategory = prvalue
# 87| getStmt(24): [ExprStmt] ExprStmt
# 87| getExpr(): [AssignExpr] ... = ...
# 87| Type = [ArithmeticType] _Complex long double
# 87| ValueCategory = prvalue
# 87| getLValue(): [VariableAccess] cld
# 87| Type = [ArithmeticType] _Complex long double
# 87| ValueCategory = lvalue
# 87| getRValue(): [VariableAccess] f
# 87| Type = [FloatType] float
# 87| ValueCategory = prvalue(load)
# 87| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 87| Conversion = [FloatingPointConversion] floating point conversion
# 87| Type = [ArithmeticType] _Complex long double
# 87| ValueCategory = prvalue
# 88| getStmt(25): [ExprStmt] ExprStmt
# 88| getExpr(): [AssignExpr] ... = ...
# 88| Type = [ArithmeticType] _Complex long double
# 88| ValueCategory = prvalue
# 88| getLValue(): [VariableAccess] cld
# 88| Type = [ArithmeticType] _Complex long double
# 88| ValueCategory = lvalue
# 88| getRValue(): [VariableAccess] d
# 88| Type = [DoubleType] double
# 88| ValueCategory = prvalue(load)
# 88| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 88| Conversion = [FloatingPointConversion] floating point conversion
# 88| Type = [ArithmeticType] _Complex long double
# 88| ValueCategory = prvalue
# 89| getStmt(26): [ExprStmt] ExprStmt
# 89| getExpr(): [AssignExpr] ... = ...
# 89| Type = [ArithmeticType] _Complex long double
# 89| ValueCategory = prvalue
# 89| getLValue(): [VariableAccess] cld
# 89| Type = [ArithmeticType] _Complex long double
# 89| ValueCategory = lvalue
# 89| getRValue(): [VariableAccess] ld
# 89| Type = [LongDoubleType] long double
# 89| ValueCategory = prvalue(load)
# 89| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 89| Conversion = [FloatingPointConversion] floating point conversion
# 89| Type = [ArithmeticType] _Complex long double
# 89| ValueCategory = prvalue
# 92| getStmt(27): [ExprStmt] ExprStmt
# 92| getExpr(): [AssignExpr] ... = ...
# 92| Type = [FloatType] float
# 92| ValueCategory = prvalue
# 92| getLValue(): [VariableAccess] f
# 92| Type = [FloatType] float
# 92| ValueCategory = lvalue
# 92| getRValue(): [VariableAccess] cf
# 92| Type = [ArithmeticType] _Complex float
# 92| ValueCategory = prvalue(load)
# 92| getRValue().getFullyConverted(): [CStyleCast] (float)...
# 92| Conversion = [FloatingPointConversion] floating point conversion
# 92| Type = [FloatType] float
# 92| ValueCategory = prvalue
# 93| getStmt(28): [ExprStmt] ExprStmt
# 93| getExpr(): [AssignExpr] ... = ...
# 93| Type = [FloatType] float
# 93| ValueCategory = prvalue
# 93| getLValue(): [VariableAccess] f
# 93| Type = [FloatType] float
# 93| ValueCategory = lvalue
# 93| getRValue(): [VariableAccess] cd
# 93| Type = [ArithmeticType] _Complex double
# 93| ValueCategory = prvalue(load)
# 93| getRValue().getFullyConverted(): [CStyleCast] (float)...
# 93| Conversion = [FloatingPointConversion] floating point conversion
# 93| Type = [FloatType] float
# 93| ValueCategory = prvalue
# 94| getStmt(29): [ExprStmt] ExprStmt
# 94| getExpr(): [AssignExpr] ... = ...
# 94| Type = [FloatType] float
# 94| ValueCategory = prvalue
# 94| getLValue(): [VariableAccess] f
# 94| Type = [FloatType] float
# 94| ValueCategory = lvalue
# 94| getRValue(): [VariableAccess] cld
# 94| Type = [ArithmeticType] _Complex long double
# 94| ValueCategory = prvalue(load)
# 94| getRValue().getFullyConverted(): [CStyleCast] (float)...
# 94| Conversion = [FloatingPointConversion] floating point conversion
# 94| Type = [FloatType] float
# 94| ValueCategory = prvalue
# 95| getStmt(30): [ExprStmt] ExprStmt
# 95| getExpr(): [AssignExpr] ... = ...
# 95| Type = [DoubleType] double
# 95| ValueCategory = prvalue
# 95| getLValue(): [VariableAccess] d
# 95| Type = [DoubleType] double
# 95| ValueCategory = lvalue
# 95| getRValue(): [VariableAccess] cf
# 95| Type = [ArithmeticType] _Complex float
# 95| ValueCategory = prvalue(load)
# 95| getRValue().getFullyConverted(): [CStyleCast] (double)...
# 95| Conversion = [FloatingPointConversion] floating point conversion
# 95| Type = [DoubleType] double
# 95| ValueCategory = prvalue
# 96| getStmt(31): [ExprStmt] ExprStmt
# 96| getExpr(): [AssignExpr] ... = ...
# 96| Type = [DoubleType] double
# 96| ValueCategory = prvalue
# 96| getLValue(): [VariableAccess] d
# 96| Type = [DoubleType] double
# 96| ValueCategory = lvalue
# 96| getRValue(): [VariableAccess] cd
# 96| Type = [ArithmeticType] _Complex double
# 96| ValueCategory = prvalue(load)
# 96| getRValue().getFullyConverted(): [CStyleCast] (double)...
# 96| Conversion = [FloatingPointConversion] floating point conversion
# 96| Type = [DoubleType] double
# 96| ValueCategory = prvalue
# 97| getStmt(32): [ExprStmt] ExprStmt
# 97| getExpr(): [AssignExpr] ... = ...
# 97| Type = [DoubleType] double
# 97| ValueCategory = prvalue
# 97| getLValue(): [VariableAccess] d
# 97| Type = [DoubleType] double
# 97| ValueCategory = lvalue
# 97| getRValue(): [VariableAccess] cld
# 97| Type = [ArithmeticType] _Complex long double
# 97| ValueCategory = prvalue(load)
# 97| getRValue().getFullyConverted(): [CStyleCast] (double)...
# 97| Conversion = [FloatingPointConversion] floating point conversion
# 97| Type = [DoubleType] double
# 97| ValueCategory = prvalue
# 98| getStmt(33): [ExprStmt] ExprStmt
# 98| getExpr(): [AssignExpr] ... = ...
# 98| Type = [LongDoubleType] long double
# 98| ValueCategory = prvalue
# 98| getLValue(): [VariableAccess] ld
# 98| Type = [LongDoubleType] long double
# 98| ValueCategory = lvalue
# 98| getRValue(): [VariableAccess] cf
# 98| Type = [ArithmeticType] _Complex float
# 98| ValueCategory = prvalue(load)
# 98| getRValue().getFullyConverted(): [CStyleCast] (long double)...
# 98| Conversion = [FloatingPointConversion] floating point conversion
# 98| Type = [LongDoubleType] long double
# 98| ValueCategory = prvalue
# 99| getStmt(34): [ExprStmt] ExprStmt
# 99| getExpr(): [AssignExpr] ... = ...
# 99| Type = [LongDoubleType] long double
# 99| ValueCategory = prvalue
# 99| getLValue(): [VariableAccess] ld
# 99| Type = [LongDoubleType] long double
# 99| ValueCategory = lvalue
# 99| getRValue(): [VariableAccess] cd
# 99| Type = [ArithmeticType] _Complex double
# 99| ValueCategory = prvalue(load)
# 99| getRValue().getFullyConverted(): [CStyleCast] (long double)...
# 99| Conversion = [FloatingPointConversion] floating point conversion
# 99| Type = [LongDoubleType] long double
# 99| ValueCategory = prvalue
# 100| getStmt(35): [ExprStmt] ExprStmt
# 100| getExpr(): [AssignExpr] ... = ...
# 100| Type = [LongDoubleType] long double
# 100| ValueCategory = prvalue
# 100| getLValue(): [VariableAccess] ld
# 100| Type = [LongDoubleType] long double
# 100| ValueCategory = lvalue
# 100| getRValue(): [VariableAccess] cld
# 100| Type = [ArithmeticType] _Complex long double
# 100| ValueCategory = prvalue(load)
# 100| getRValue().getFullyConverted(): [CStyleCast] (long double)...
# 100| Conversion = [FloatingPointConversion] floating point conversion
# 100| Type = [LongDoubleType] long double
# 100| ValueCategory = prvalue
# 103| getStmt(36): [ExprStmt] ExprStmt
# 103| getExpr(): [AssignExpr] ... = ...
# 103| Type = [ArithmeticType] _Complex float
# 103| ValueCategory = prvalue
# 103| getLValue(): [VariableAccess] cf
# 103| Type = [ArithmeticType] _Complex float
# 103| ValueCategory = lvalue
# 103| getRValue(): [VariableAccess] jf
# 103| Type = [ArithmeticType] _Imaginary float
# 103| ValueCategory = prvalue(load)
# 103| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 103| Conversion = [FloatingPointConversion] floating point conversion
# 103| Type = [ArithmeticType] _Complex float
# 103| ValueCategory = prvalue
# 104| getStmt(37): [ExprStmt] ExprStmt
# 104| getExpr(): [AssignExpr] ... = ...
# 104| Type = [ArithmeticType] _Complex float
# 104| ValueCategory = prvalue
# 104| getLValue(): [VariableAccess] cf
# 104| Type = [ArithmeticType] _Complex float
# 104| ValueCategory = lvalue
# 104| getRValue(): [VariableAccess] jd
# 104| Type = [ArithmeticType] _Imaginary double
# 104| ValueCategory = prvalue(load)
# 104| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 104| Conversion = [FloatingPointConversion] floating point conversion
# 104| Type = [ArithmeticType] _Complex float
# 104| ValueCategory = prvalue
# 105| getStmt(38): [ExprStmt] ExprStmt
# 105| getExpr(): [AssignExpr] ... = ...
# 105| Type = [ArithmeticType] _Complex float
# 105| ValueCategory = prvalue
# 105| getLValue(): [VariableAccess] cf
# 105| Type = [ArithmeticType] _Complex float
# 105| ValueCategory = lvalue
# 105| getRValue(): [VariableAccess] jld
# 105| Type = [ArithmeticType] _Imaginary long double
# 105| ValueCategory = prvalue(load)
# 105| getRValue().getFullyConverted(): [CStyleCast] (_Complex float)...
# 105| Conversion = [FloatingPointConversion] floating point conversion
# 105| Type = [ArithmeticType] _Complex float
# 105| ValueCategory = prvalue
# 106| getStmt(39): [ExprStmt] ExprStmt
# 106| getExpr(): [AssignExpr] ... = ...
# 106| Type = [ArithmeticType] _Complex double
# 106| ValueCategory = prvalue
# 106| getLValue(): [VariableAccess] cd
# 106| Type = [ArithmeticType] _Complex double
# 106| ValueCategory = lvalue
# 106| getRValue(): [VariableAccess] jf
# 106| Type = [ArithmeticType] _Imaginary float
# 106| ValueCategory = prvalue(load)
# 106| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 106| Conversion = [FloatingPointConversion] floating point conversion
# 106| Type = [ArithmeticType] _Complex double
# 106| ValueCategory = prvalue
# 107| getStmt(40): [ExprStmt] ExprStmt
# 107| getExpr(): [AssignExpr] ... = ...
# 107| Type = [ArithmeticType] _Complex double
# 107| ValueCategory = prvalue
# 107| getLValue(): [VariableAccess] cd
# 107| Type = [ArithmeticType] _Complex double
# 107| ValueCategory = lvalue
# 107| getRValue(): [VariableAccess] jd
# 107| Type = [ArithmeticType] _Imaginary double
# 107| ValueCategory = prvalue(load)
# 107| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 107| Conversion = [FloatingPointConversion] floating point conversion
# 107| Type = [ArithmeticType] _Complex double
# 107| ValueCategory = prvalue
# 108| getStmt(41): [ExprStmt] ExprStmt
# 108| getExpr(): [AssignExpr] ... = ...
# 108| Type = [ArithmeticType] _Complex double
# 108| ValueCategory = prvalue
# 108| getLValue(): [VariableAccess] cd
# 108| Type = [ArithmeticType] _Complex double
# 108| ValueCategory = lvalue
# 108| getRValue(): [VariableAccess] jld
# 108| Type = [ArithmeticType] _Imaginary long double
# 108| ValueCategory = prvalue(load)
# 108| getRValue().getFullyConverted(): [CStyleCast] (_Complex double)...
# 108| Conversion = [FloatingPointConversion] floating point conversion
# 108| Type = [ArithmeticType] _Complex double
# 108| ValueCategory = prvalue
# 109| getStmt(42): [ExprStmt] ExprStmt
# 109| getExpr(): [AssignExpr] ... = ...
# 109| Type = [ArithmeticType] _Complex long double
# 109| ValueCategory = prvalue
# 109| getLValue(): [VariableAccess] cld
# 109| Type = [ArithmeticType] _Complex long double
# 109| ValueCategory = lvalue
# 109| getRValue(): [VariableAccess] jf
# 109| Type = [ArithmeticType] _Imaginary float
# 109| ValueCategory = prvalue(load)
# 109| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 109| Conversion = [FloatingPointConversion] floating point conversion
# 109| Type = [ArithmeticType] _Complex long double
# 109| ValueCategory = prvalue
# 110| getStmt(43): [ExprStmt] ExprStmt
# 110| getExpr(): [AssignExpr] ... = ...
# 110| Type = [ArithmeticType] _Complex long double
# 110| ValueCategory = prvalue
# 110| getLValue(): [VariableAccess] cld
# 110| Type = [ArithmeticType] _Complex long double
# 110| ValueCategory = lvalue
# 110| getRValue(): [VariableAccess] jd
# 110| Type = [ArithmeticType] _Imaginary double
# 110| ValueCategory = prvalue(load)
# 110| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 110| Conversion = [FloatingPointConversion] floating point conversion
# 110| Type = [ArithmeticType] _Complex long double
# 110| ValueCategory = prvalue
# 111| getStmt(44): [ExprStmt] ExprStmt
# 111| getExpr(): [AssignExpr] ... = ...
# 111| Type = [ArithmeticType] _Complex long double
# 111| ValueCategory = prvalue
# 111| getLValue(): [VariableAccess] cld
# 111| Type = [ArithmeticType] _Complex long double
# 111| ValueCategory = lvalue
# 111| getRValue(): [VariableAccess] jld
# 111| Type = [ArithmeticType] _Imaginary long double
# 111| ValueCategory = prvalue(load)
# 111| getRValue().getFullyConverted(): [CStyleCast] (_Complex long double)...
# 111| Conversion = [FloatingPointConversion] floating point conversion
# 111| Type = [ArithmeticType] _Complex long double
# 111| ValueCategory = prvalue
# 114| getStmt(45): [ExprStmt] ExprStmt
# 114| getExpr(): [AssignExpr] ... = ...
# 114| Type = [ArithmeticType] _Imaginary float
# 114| ValueCategory = prvalue
# 114| getLValue(): [VariableAccess] jf
# 114| Type = [ArithmeticType] _Imaginary float
# 114| ValueCategory = lvalue
# 114| getRValue(): [VariableAccess] cf
# 114| Type = [ArithmeticType] _Complex float
# 114| ValueCategory = prvalue(load)
# 114| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary float)...
# 114| Conversion = [FloatingPointConversion] floating point conversion
# 114| Type = [ArithmeticType] _Imaginary float
# 114| ValueCategory = prvalue
# 115| getStmt(46): [ExprStmt] ExprStmt
# 115| getExpr(): [AssignExpr] ... = ...
# 115| Type = [ArithmeticType] _Imaginary float
# 115| ValueCategory = prvalue
# 115| getLValue(): [VariableAccess] jf
# 115| Type = [ArithmeticType] _Imaginary float
# 115| ValueCategory = lvalue
# 115| getRValue(): [VariableAccess] cd
# 115| Type = [ArithmeticType] _Complex double
# 115| ValueCategory = prvalue(load)
# 115| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary float)...
# 115| Conversion = [FloatingPointConversion] floating point conversion
# 115| Type = [ArithmeticType] _Imaginary float
# 115| ValueCategory = prvalue
# 116| getStmt(47): [ExprStmt] ExprStmt
# 116| getExpr(): [AssignExpr] ... = ...
# 116| Type = [ArithmeticType] _Imaginary float
# 116| ValueCategory = prvalue
# 116| getLValue(): [VariableAccess] jf
# 116| Type = [ArithmeticType] _Imaginary float
# 116| ValueCategory = lvalue
# 116| getRValue(): [VariableAccess] cld
# 116| Type = [ArithmeticType] _Complex long double
# 116| ValueCategory = prvalue(load)
# 116| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary float)...
# 116| Conversion = [FloatingPointConversion] floating point conversion
# 116| Type = [ArithmeticType] _Imaginary float
# 116| ValueCategory = prvalue
# 117| getStmt(48): [ExprStmt] ExprStmt
# 117| getExpr(): [AssignExpr] ... = ...
# 117| Type = [ArithmeticType] _Imaginary double
# 117| ValueCategory = prvalue
# 117| getLValue(): [VariableAccess] jd
# 117| Type = [ArithmeticType] _Imaginary double
# 117| ValueCategory = lvalue
# 117| getRValue(): [VariableAccess] cf
# 117| Type = [ArithmeticType] _Complex float
# 117| ValueCategory = prvalue(load)
# 117| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary double)...
# 117| Conversion = [FloatingPointConversion] floating point conversion
# 117| Type = [ArithmeticType] _Imaginary double
# 117| ValueCategory = prvalue
# 118| getStmt(49): [ExprStmt] ExprStmt
# 118| getExpr(): [AssignExpr] ... = ...
# 118| Type = [ArithmeticType] _Imaginary double
# 118| ValueCategory = prvalue
# 118| getLValue(): [VariableAccess] jd
# 118| Type = [ArithmeticType] _Imaginary double
# 118| ValueCategory = lvalue
# 118| getRValue(): [VariableAccess] cd
# 118| Type = [ArithmeticType] _Complex double
# 118| ValueCategory = prvalue(load)
# 118| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary double)...
# 118| Conversion = [FloatingPointConversion] floating point conversion
# 118| Type = [ArithmeticType] _Imaginary double
# 118| ValueCategory = prvalue
# 119| getStmt(50): [ExprStmt] ExprStmt
# 119| getExpr(): [AssignExpr] ... = ...
# 119| Type = [ArithmeticType] _Imaginary double
# 119| ValueCategory = prvalue
# 119| getLValue(): [VariableAccess] jd
# 119| Type = [ArithmeticType] _Imaginary double
# 119| ValueCategory = lvalue
# 119| getRValue(): [VariableAccess] cld
# 119| Type = [ArithmeticType] _Complex long double
# 119| ValueCategory = prvalue(load)
# 119| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary double)...
# 119| Conversion = [FloatingPointConversion] floating point conversion
# 119| Type = [ArithmeticType] _Imaginary double
# 119| ValueCategory = prvalue
# 120| getStmt(51): [ExprStmt] ExprStmt
# 120| getExpr(): [AssignExpr] ... = ...
# 120| Type = [ArithmeticType] _Imaginary long double
# 120| ValueCategory = prvalue
# 120| getLValue(): [VariableAccess] jld
# 120| Type = [ArithmeticType] _Imaginary long double
# 120| ValueCategory = lvalue
# 120| getRValue(): [VariableAccess] cf
# 120| Type = [ArithmeticType] _Complex float
# 120| ValueCategory = prvalue(load)
# 120| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary long double)...
# 120| Conversion = [FloatingPointConversion] floating point conversion
# 120| Type = [ArithmeticType] _Imaginary long double
# 120| ValueCategory = prvalue
# 121| getStmt(52): [ExprStmt] ExprStmt
# 121| getExpr(): [AssignExpr] ... = ...
# 121| Type = [ArithmeticType] _Imaginary long double
# 121| ValueCategory = prvalue
# 121| getLValue(): [VariableAccess] jld
# 121| Type = [ArithmeticType] _Imaginary long double
# 121| ValueCategory = lvalue
# 121| getRValue(): [VariableAccess] cd
# 121| Type = [ArithmeticType] _Complex double
# 121| ValueCategory = prvalue(load)
# 121| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary long double)...
# 121| Conversion = [FloatingPointConversion] floating point conversion
# 121| Type = [ArithmeticType] _Imaginary long double
# 121| ValueCategory = prvalue
# 122| getStmt(53): [ExprStmt] ExprStmt
# 122| getExpr(): [AssignExpr] ... = ...
# 122| Type = [ArithmeticType] _Imaginary long double
# 122| ValueCategory = prvalue
# 122| getLValue(): [VariableAccess] jld
# 122| Type = [ArithmeticType] _Imaginary long double
# 122| ValueCategory = lvalue
# 122| getRValue(): [VariableAccess] cld
# 122| Type = [ArithmeticType] _Complex long double
# 122| ValueCategory = prvalue(load)
# 122| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary long double)...
# 122| Conversion = [FloatingPointConversion] floating point conversion
# 122| Type = [ArithmeticType] _Imaginary long double
# 122| ValueCategory = prvalue
# 125| getStmt(54): [ExprStmt] ExprStmt
# 125| getExpr(): [AssignExpr] ... = ...
# 125| Type = [ArithmeticType] _Imaginary float
# 125| ValueCategory = prvalue
# 125| getLValue(): [VariableAccess] jf
# 125| Type = [ArithmeticType] _Imaginary float
# 125| ValueCategory = lvalue
# 125| getRValue(): [VariableAccess] f
# 125| Type = [FloatType] float
# 125| ValueCategory = prvalue(load)
# 125| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary float)...
# 125| Conversion = [FloatingPointConversion] floating point conversion
# 125| Type = [ArithmeticType] _Imaginary float
# 125| ValueCategory = prvalue
# 126| getStmt(55): [ExprStmt] ExprStmt
# 126| getExpr(): [AssignExpr] ... = ...
# 126| Type = [ArithmeticType] _Imaginary float
# 126| ValueCategory = prvalue
# 126| getLValue(): [VariableAccess] jf
# 126| Type = [ArithmeticType] _Imaginary float
# 126| ValueCategory = lvalue
# 126| getRValue(): [VariableAccess] d
# 126| Type = [DoubleType] double
# 126| ValueCategory = prvalue(load)
# 126| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary float)...
# 126| Conversion = [FloatingPointConversion] floating point conversion
# 126| Type = [ArithmeticType] _Imaginary float
# 126| ValueCategory = prvalue
# 127| getStmt(56): [ExprStmt] ExprStmt
# 127| getExpr(): [AssignExpr] ... = ...
# 127| Type = [ArithmeticType] _Imaginary float
# 127| ValueCategory = prvalue
# 127| getLValue(): [VariableAccess] jf
# 127| Type = [ArithmeticType] _Imaginary float
# 127| ValueCategory = lvalue
# 127| getRValue(): [VariableAccess] ld
# 127| Type = [LongDoubleType] long double
# 127| ValueCategory = prvalue(load)
# 127| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary float)...
# 127| Conversion = [FloatingPointConversion] floating point conversion
# 127| Type = [ArithmeticType] _Imaginary float
# 127| ValueCategory = prvalue
# 128| getStmt(57): [ExprStmt] ExprStmt
# 128| getExpr(): [AssignExpr] ... = ...
# 128| Type = [ArithmeticType] _Imaginary double
# 128| ValueCategory = prvalue
# 128| getLValue(): [VariableAccess] jd
# 128| Type = [ArithmeticType] _Imaginary double
# 128| ValueCategory = lvalue
# 128| getRValue(): [VariableAccess] f
# 128| Type = [FloatType] float
# 128| ValueCategory = prvalue(load)
# 128| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary double)...
# 128| Conversion = [FloatingPointConversion] floating point conversion
# 128| Type = [ArithmeticType] _Imaginary double
# 128| ValueCategory = prvalue
# 129| getStmt(58): [ExprStmt] ExprStmt
# 129| getExpr(): [AssignExpr] ... = ...
# 129| Type = [ArithmeticType] _Imaginary double
# 129| ValueCategory = prvalue
# 129| getLValue(): [VariableAccess] jd
# 129| Type = [ArithmeticType] _Imaginary double
# 129| ValueCategory = lvalue
# 129| getRValue(): [VariableAccess] d
# 129| Type = [DoubleType] double
# 129| ValueCategory = prvalue(load)
# 129| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary double)...
# 129| Conversion = [FloatingPointConversion] floating point conversion
# 129| Type = [ArithmeticType] _Imaginary double
# 129| ValueCategory = prvalue
# 130| getStmt(59): [ExprStmt] ExprStmt
# 130| getExpr(): [AssignExpr] ... = ...
# 130| Type = [ArithmeticType] _Imaginary double
# 130| ValueCategory = prvalue
# 130| getLValue(): [VariableAccess] jd
# 130| Type = [ArithmeticType] _Imaginary double
# 130| ValueCategory = lvalue
# 130| getRValue(): [VariableAccess] ld
# 130| Type = [LongDoubleType] long double
# 130| ValueCategory = prvalue(load)
# 130| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary double)...
# 130| Conversion = [FloatingPointConversion] floating point conversion
# 130| Type = [ArithmeticType] _Imaginary double
# 130| ValueCategory = prvalue
# 131| getStmt(60): [ExprStmt] ExprStmt
# 131| getExpr(): [AssignExpr] ... = ...
# 131| Type = [ArithmeticType] _Imaginary long double
# 131| ValueCategory = prvalue
# 131| getLValue(): [VariableAccess] jld
# 131| Type = [ArithmeticType] _Imaginary long double
# 131| ValueCategory = lvalue
# 131| getRValue(): [VariableAccess] f
# 131| Type = [FloatType] float
# 131| ValueCategory = prvalue(load)
# 131| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary long double)...
# 131| Conversion = [FloatingPointConversion] floating point conversion
# 131| Type = [ArithmeticType] _Imaginary long double
# 131| ValueCategory = prvalue
# 132| getStmt(61): [ExprStmt] ExprStmt
# 132| getExpr(): [AssignExpr] ... = ...
# 132| Type = [ArithmeticType] _Imaginary long double
# 132| ValueCategory = prvalue
# 132| getLValue(): [VariableAccess] jld
# 132| Type = [ArithmeticType] _Imaginary long double
# 132| ValueCategory = lvalue
# 132| getRValue(): [VariableAccess] d
# 132| Type = [DoubleType] double
# 132| ValueCategory = prvalue(load)
# 132| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary long double)...
# 132| Conversion = [FloatingPointConversion] floating point conversion
# 132| Type = [ArithmeticType] _Imaginary long double
# 132| ValueCategory = prvalue
# 133| getStmt(62): [ExprStmt] ExprStmt
# 133| getExpr(): [AssignExpr] ... = ...
# 133| Type = [ArithmeticType] _Imaginary long double
# 133| ValueCategory = prvalue
# 133| getLValue(): [VariableAccess] jld
# 133| Type = [ArithmeticType] _Imaginary long double
# 133| ValueCategory = lvalue
# 133| getRValue(): [VariableAccess] ld
# 133| Type = [LongDoubleType] long double
# 133| ValueCategory = prvalue(load)
# 133| getRValue().getFullyConverted(): [CStyleCast] (_Imaginary long double)...
# 133| Conversion = [FloatingPointConversion] floating point conversion
# 133| Type = [ArithmeticType] _Imaginary long double
# 133| ValueCategory = prvalue
# 136| getStmt(63): [ExprStmt] ExprStmt
# 136| getExpr(): [AssignExpr] ... = ...
# 136| Type = [FloatType] float
# 136| ValueCategory = prvalue
# 136| getLValue(): [VariableAccess] f
# 136| Type = [FloatType] float
# 136| ValueCategory = lvalue
# 136| getRValue(): [VariableAccess] jf
# 136| Type = [ArithmeticType] _Imaginary float
# 136| ValueCategory = prvalue(load)
# 136| getRValue().getFullyConverted(): [CStyleCast] (float)...
# 136| Conversion = [FloatingPointConversion] floating point conversion
# 136| Type = [FloatType] float
# 136| ValueCategory = prvalue
# 137| getStmt(64): [ExprStmt] ExprStmt
# 137| getExpr(): [AssignExpr] ... = ...
# 137| Type = [FloatType] float
# 137| ValueCategory = prvalue
# 137| getLValue(): [VariableAccess] f
# 137| Type = [FloatType] float
# 137| ValueCategory = lvalue
# 137| getRValue(): [VariableAccess] jd
# 137| Type = [ArithmeticType] _Imaginary double
# 137| ValueCategory = prvalue(load)
# 137| getRValue().getFullyConverted(): [CStyleCast] (float)...
# 137| Conversion = [FloatingPointConversion] floating point conversion
# 137| Type = [FloatType] float
# 137| ValueCategory = prvalue
# 138| getStmt(65): [ExprStmt] ExprStmt
# 138| getExpr(): [AssignExpr] ... = ...
# 138| Type = [FloatType] float
# 138| ValueCategory = prvalue
# 138| getLValue(): [VariableAccess] f
# 138| Type = [FloatType] float
# 138| ValueCategory = lvalue
# 138| getRValue(): [VariableAccess] jld
# 138| Type = [ArithmeticType] _Imaginary long double
# 138| ValueCategory = prvalue(load)
# 138| getRValue().getFullyConverted(): [CStyleCast] (float)...
# 138| Conversion = [FloatingPointConversion] floating point conversion
# 138| Type = [FloatType] float
# 138| ValueCategory = prvalue
# 139| getStmt(66): [ExprStmt] ExprStmt
# 139| getExpr(): [AssignExpr] ... = ...
# 139| Type = [DoubleType] double
# 139| ValueCategory = prvalue
# 139| getLValue(): [VariableAccess] d
# 139| Type = [DoubleType] double
# 139| ValueCategory = lvalue
# 139| getRValue(): [VariableAccess] jf
# 139| Type = [ArithmeticType] _Imaginary float
# 139| ValueCategory = prvalue(load)
# 139| getRValue().getFullyConverted(): [CStyleCast] (double)...
# 139| Conversion = [FloatingPointConversion] floating point conversion
# 139| Type = [DoubleType] double
# 139| ValueCategory = prvalue
# 140| getStmt(67): [ExprStmt] ExprStmt
# 140| getExpr(): [AssignExpr] ... = ...
# 140| Type = [DoubleType] double
# 140| ValueCategory = prvalue
# 140| getLValue(): [VariableAccess] d
# 140| Type = [DoubleType] double
# 140| ValueCategory = lvalue
# 140| getRValue(): [VariableAccess] jd
# 140| Type = [ArithmeticType] _Imaginary double
# 140| ValueCategory = prvalue(load)
# 140| getRValue().getFullyConverted(): [CStyleCast] (double)...
# 140| Conversion = [FloatingPointConversion] floating point conversion
# 140| Type = [DoubleType] double
# 140| ValueCategory = prvalue
# 141| getStmt(68): [ExprStmt] ExprStmt
# 141| getExpr(): [AssignExpr] ... = ...
# 141| Type = [DoubleType] double
# 141| ValueCategory = prvalue
# 141| getLValue(): [VariableAccess] d
# 141| Type = [DoubleType] double
# 141| ValueCategory = lvalue
# 141| getRValue(): [VariableAccess] jld
# 141| Type = [ArithmeticType] _Imaginary long double
# 141| ValueCategory = prvalue(load)
# 141| getRValue().getFullyConverted(): [CStyleCast] (double)...
# 141| Conversion = [FloatingPointConversion] floating point conversion
# 141| Type = [DoubleType] double
# 141| ValueCategory = prvalue
# 142| getStmt(69): [ExprStmt] ExprStmt
# 142| getExpr(): [AssignExpr] ... = ...
# 142| Type = [LongDoubleType] long double
# 142| ValueCategory = prvalue
# 142| getLValue(): [VariableAccess] ld
# 142| Type = [LongDoubleType] long double
# 142| ValueCategory = lvalue
# 142| getRValue(): [VariableAccess] jf
# 142| Type = [ArithmeticType] _Imaginary float
# 142| ValueCategory = prvalue(load)
# 142| getRValue().getFullyConverted(): [CStyleCast] (long double)...
# 142| Conversion = [FloatingPointConversion] floating point conversion
# 142| Type = [LongDoubleType] long double
# 142| ValueCategory = prvalue
# 143| getStmt(70): [ExprStmt] ExprStmt
# 143| getExpr(): [AssignExpr] ... = ...
# 143| Type = [LongDoubleType] long double
# 143| ValueCategory = prvalue
# 143| getLValue(): [VariableAccess] ld
# 143| Type = [LongDoubleType] long double
# 143| ValueCategory = lvalue
# 143| getRValue(): [VariableAccess] jd
# 143| Type = [ArithmeticType] _Imaginary double
# 143| ValueCategory = prvalue(load)
# 143| getRValue().getFullyConverted(): [CStyleCast] (long double)...
# 143| Conversion = [FloatingPointConversion] floating point conversion
# 143| Type = [LongDoubleType] long double
# 143| ValueCategory = prvalue
# 144| getStmt(71): [ExprStmt] ExprStmt
# 144| getExpr(): [AssignExpr] ... = ...
# 144| Type = [LongDoubleType] long double
# 144| ValueCategory = prvalue
# 144| getLValue(): [VariableAccess] ld
# 144| Type = [LongDoubleType] long double
# 144| ValueCategory = lvalue
# 144| getRValue(): [VariableAccess] jld
# 144| Type = [ArithmeticType] _Imaginary long double
# 144| ValueCategory = prvalue(load)
# 144| getRValue().getFullyConverted(): [CStyleCast] (long double)...
# 144| Conversion = [FloatingPointConversion] floating point conversion
# 144| Type = [LongDoubleType] long double
# 144| ValueCategory = prvalue
# 145| getStmt(72): [ReturnStmt] return ...
ir.cpp:
# 1| [TopLevelFunction] void Constants()
# 1| <params>:
# 1| getEntryPoint(): [BlockStmt] { ... }
# 2| getStmt(0): [DeclStmt] declaration
# 2| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c_i
# 2| Type = [PlainCharType] char
# 2| getVariable().getInitializer(): [Initializer] initializer for c_i
# 2| getExpr(): [Literal] 1
# 2| Type = [IntType] int
# 2| Value = [Literal] 1
# 2| ValueCategory = prvalue
# 2| getExpr().getFullyConverted(): [CStyleCast] (char)...
# 2| Conversion = [IntegralConversion] integral conversion
# 2| Type = [PlainCharType] char
# 2| Value = [CStyleCast] 1
# 2| ValueCategory = prvalue
# 3| getStmt(1): [DeclStmt] declaration
# 3| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c_c
# 3| Type = [PlainCharType] char
# 3| getVariable().getInitializer(): [Initializer] initializer for c_c
# 3| getExpr(): [CharLiteral] 65
# 3| Type = [PlainCharType] char
# 3| Value = [CharLiteral] 65
# 3| ValueCategory = prvalue
# 5| getStmt(2): [DeclStmt] declaration
# 5| getDeclarationEntry(0): [VariableDeclarationEntry] definition of sc_i
# 5| Type = [SignedCharType] signed char
# 5| getVariable().getInitializer(): [Initializer] initializer for sc_i
# 5| getExpr(): [UnaryMinusExpr] - ...
# 5| Type = [IntType] int
# 5| Value = [UnaryMinusExpr] -1
# 5| ValueCategory = prvalue
# 5| getOperand(): [Literal] 1
# 5| Type = [IntType] int
# 5| Value = [Literal] 1
# 5| ValueCategory = prvalue
# 5| getExpr().getFullyConverted(): [CStyleCast] (signed char)...
# 5| Conversion = [IntegralConversion] integral conversion
# 5| Type = [SignedCharType] signed char
# 5| Value = [CStyleCast] -1
# 5| ValueCategory = prvalue
# 6| getStmt(3): [DeclStmt] declaration
# 6| getDeclarationEntry(0): [VariableDeclarationEntry] definition of sc_c
# 6| Type = [SignedCharType] signed char
# 6| getVariable().getInitializer(): [Initializer] initializer for sc_c
# 6| getExpr(): [CharLiteral] 65
# 6| Type = [PlainCharType] char
# 6| Value = [CharLiteral] 65
# 6| ValueCategory = prvalue
# 6| getExpr().getFullyConverted(): [CStyleCast] (signed char)...
# 6| Conversion = [IntegralConversion] integral conversion
# 6| Type = [SignedCharType] signed char
# 6| Value = [CStyleCast] 65
# 6| ValueCategory = prvalue
# 8| getStmt(4): [DeclStmt] declaration
# 8| getDeclarationEntry(0): [VariableDeclarationEntry] definition of uc_i
# 8| Type = [UnsignedCharType] unsigned char
# 8| getVariable().getInitializer(): [Initializer] initializer for uc_i
# 8| getExpr(): [Literal] 5
# 8| Type = [IntType] int
# 8| Value = [Literal] 5
# 8| ValueCategory = prvalue
# 8| getExpr().getFullyConverted(): [CStyleCast] (unsigned char)...
# 8| Conversion = [IntegralConversion] integral conversion
# 8| Type = [UnsignedCharType] unsigned char
# 8| Value = [CStyleCast] 5
# 8| ValueCategory = prvalue
# 9| getStmt(5): [DeclStmt] declaration
# 9| getDeclarationEntry(0): [VariableDeclarationEntry] definition of uc_c
# 9| Type = [UnsignedCharType] unsigned char
# 9| getVariable().getInitializer(): [Initializer] initializer for uc_c
# 9| getExpr(): [CharLiteral] 65
# 9| Type = [PlainCharType] char
# 9| Value = [CharLiteral] 65
# 9| ValueCategory = prvalue
# 9| getExpr().getFullyConverted(): [CStyleCast] (unsigned char)...
# 9| Conversion = [IntegralConversion] integral conversion
# 9| Type = [UnsignedCharType] unsigned char
# 9| Value = [CStyleCast] 65
# 9| ValueCategory = prvalue
# 11| getStmt(6): [DeclStmt] declaration
# 11| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s
# 11| Type = [ShortType] short
# 11| getVariable().getInitializer(): [Initializer] initializer for s
# 11| getExpr(): [Literal] 5
# 11| Type = [IntType] int
# 11| Value = [Literal] 5
# 11| ValueCategory = prvalue
# 11| getExpr().getFullyConverted(): [CStyleCast] (short)...
# 11| Conversion = [IntegralConversion] integral conversion
# 11| Type = [ShortType] short
# 11| Value = [CStyleCast] 5
# 11| ValueCategory = prvalue
# 12| getStmt(7): [DeclStmt] declaration
# 12| getDeclarationEntry(0): [VariableDeclarationEntry] definition of us
# 12| Type = [ShortType] unsigned short
# 12| getVariable().getInitializer(): [Initializer] initializer for us
# 12| getExpr(): [Literal] 5
# 12| Type = [IntType] int
# 12| Value = [Literal] 5
# 12| ValueCategory = prvalue
# 12| getExpr().getFullyConverted(): [CStyleCast] (unsigned short)...
# 12| Conversion = [IntegralConversion] integral conversion
# 12| Type = [ShortType] unsigned short
# 12| Value = [CStyleCast] 5
# 12| ValueCategory = prvalue
# 14| getStmt(8): [DeclStmt] declaration
# 14| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 14| Type = [IntType] int
# 14| getVariable().getInitializer(): [Initializer] initializer for i
# 14| getExpr(): [Literal] 5
# 14| Type = [IntType] int
# 14| Value = [Literal] 5
# 14| ValueCategory = prvalue
# 15| getStmt(9): [DeclStmt] declaration
# 15| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ui
# 15| Type = [IntType] unsigned int
# 15| getVariable().getInitializer(): [Initializer] initializer for ui
# 15| getExpr(): [Literal] 5
# 15| Type = [IntType] int
# 15| Value = [Literal] 5
# 15| ValueCategory = prvalue
# 15| getExpr().getFullyConverted(): [CStyleCast] (unsigned int)...
# 15| Conversion = [IntegralConversion] integral conversion
# 15| Type = [IntType] unsigned int
# 15| Value = [CStyleCast] 5
# 15| ValueCategory = prvalue
# 17| getStmt(10): [DeclStmt] declaration
# 17| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l
# 17| Type = [LongType] long
# 17| getVariable().getInitializer(): [Initializer] initializer for l
# 17| getExpr(): [Literal] 5
# 17| Type = [IntType] int
# 17| Value = [Literal] 5
# 17| ValueCategory = prvalue
# 17| getExpr().getFullyConverted(): [CStyleCast] (long)...
# 17| Conversion = [IntegralConversion] integral conversion
# 17| Type = [LongType] long
# 17| Value = [CStyleCast] 5
# 17| ValueCategory = prvalue
# 18| getStmt(11): [DeclStmt] declaration
# 18| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ul
# 18| Type = [LongType] unsigned long
# 18| getVariable().getInitializer(): [Initializer] initializer for ul
# 18| getExpr(): [Literal] 5
# 18| Type = [IntType] int
# 18| Value = [Literal] 5
# 18| ValueCategory = prvalue
# 18| getExpr().getFullyConverted(): [CStyleCast] (unsigned long)...
# 18| Conversion = [IntegralConversion] integral conversion
# 18| Type = [LongType] unsigned long
# 18| Value = [CStyleCast] 5
# 18| ValueCategory = prvalue
# 20| getStmt(12): [DeclStmt] declaration
# 20| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ll_i
# 20| Type = [LongLongType] long long
# 20| getVariable().getInitializer(): [Initializer] initializer for ll_i
# 20| getExpr(): [Literal] 5
# 20| Type = [IntType] int
# 20| Value = [Literal] 5
# 20| ValueCategory = prvalue
# 20| getExpr().getFullyConverted(): [CStyleCast] (long long)...
# 20| Conversion = [IntegralConversion] integral conversion
# 20| Type = [LongLongType] long long
# 20| Value = [CStyleCast] 5
# 20| ValueCategory = prvalue
# 21| getStmt(13): [DeclStmt] declaration
# 21| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ll_ll
# 21| Type = [LongLongType] long long
# 21| getVariable().getInitializer(): [Initializer] initializer for ll_ll
# 21| getExpr(): [Literal] 5
# 21| Type = [LongLongType] long long
# 21| Value = [Literal] 5
# 21| ValueCategory = prvalue
# 22| getStmt(14): [DeclStmt] declaration
# 22| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ull_i
# 22| Type = [LongLongType] unsigned long long
# 22| getVariable().getInitializer(): [Initializer] initializer for ull_i
# 22| getExpr(): [Literal] 5
# 22| Type = [IntType] int
# 22| Value = [Literal] 5
# 22| ValueCategory = prvalue
# 22| getExpr().getFullyConverted(): [CStyleCast] (unsigned long long)...
# 22| Conversion = [IntegralConversion] integral conversion
# 22| Type = [LongLongType] unsigned long long
# 22| Value = [CStyleCast] 5
# 22| ValueCategory = prvalue
# 23| getStmt(15): [DeclStmt] declaration
# 23| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ull_ull
# 23| Type = [LongLongType] unsigned long long
# 23| getVariable().getInitializer(): [Initializer] initializer for ull_ull
# 23| getExpr(): [Literal] 5
# 23| Type = [LongLongType] unsigned long long
# 23| Value = [Literal] 5
# 23| ValueCategory = prvalue
# 25| getStmt(16): [DeclStmt] declaration
# 25| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b_t
# 25| Type = [BoolType] bool
# 25| getVariable().getInitializer(): [Initializer] initializer for b_t
# 25| getExpr(): [Literal] 1
# 25| Type = [BoolType] bool
# 25| Value = [Literal] 1
# 25| ValueCategory = prvalue
# 26| getStmt(17): [DeclStmt] declaration
# 26| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b_f
# 26| Type = [BoolType] bool
# 26| getVariable().getInitializer(): [Initializer] initializer for b_f
# 26| getExpr(): [Literal] 0
# 26| Type = [BoolType] bool
# 26| Value = [Literal] 0
# 26| ValueCategory = prvalue
# 28| getStmt(18): [DeclStmt] declaration
# 28| getDeclarationEntry(0): [VariableDeclarationEntry] definition of wc_i
# 28| Type = [Wchar_t,WideCharType] wchar_t
# 28| getVariable().getInitializer(): [Initializer] initializer for wc_i
# 28| getExpr(): [Literal] 5
# 28| Type = [IntType] int
# 28| Value = [Literal] 5
# 28| ValueCategory = prvalue
# 28| getExpr().getFullyConverted(): [CStyleCast] (wchar_t)...
# 28| Conversion = [IntegralConversion] integral conversion
# 28| Type = [Wchar_t,WideCharType] wchar_t
# 28| Value = [CStyleCast] 5
# 28| ValueCategory = prvalue
# 29| getStmt(19): [DeclStmt] declaration
# 29| getDeclarationEntry(0): [VariableDeclarationEntry] definition of wc_c
# 29| Type = [Wchar_t,WideCharType] wchar_t
# 29| getVariable().getInitializer(): [Initializer] initializer for wc_c
# 29| getExpr(): [CharLiteral] 65
# 29| Type = [Wchar_t,WideCharType] wchar_t
# 29| Value = [CharLiteral] 65
# 29| ValueCategory = prvalue
# 31| getStmt(20): [DeclStmt] declaration
# 31| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c16
# 31| Type = [Char16Type] char16_t
# 31| getVariable().getInitializer(): [Initializer] initializer for c16
# 31| getExpr(): [Literal] 65
# 31| Type = [Char16Type] char16_t
# 31| Value = [Literal] 65
# 31| ValueCategory = prvalue
# 32| getStmt(21): [DeclStmt] declaration
# 32| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c32
# 32| Type = [Char32Type] char32_t
# 32| getVariable().getInitializer(): [Initializer] initializer for c32
# 32| getExpr(): [Literal] 65
# 32| Type = [Char32Type] char32_t
# 32| Value = [Literal] 65
# 32| ValueCategory = prvalue
# 34| getStmt(22): [DeclStmt] declaration
# 34| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f_i
# 34| Type = [FloatType] float
# 34| getVariable().getInitializer(): [Initializer] initializer for f_i
# 34| getExpr(): [Literal] 1
# 34| Type = [IntType] int
# 34| Value = [Literal] 1
# 34| ValueCategory = prvalue
# 34| getExpr().getFullyConverted(): [CStyleCast] (float)...
# 34| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 34| Type = [FloatType] float
# 34| Value = [CStyleCast] 1.0
# 34| ValueCategory = prvalue
# 35| getStmt(23): [DeclStmt] declaration
# 35| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f_f
# 35| Type = [FloatType] float
# 35| getVariable().getInitializer(): [Initializer] initializer for f_f
# 35| getExpr(): [Literal] 1.0
# 35| Type = [FloatType] float
# 35| Value = [Literal] 1.0
# 35| ValueCategory = prvalue
# 36| getStmt(24): [DeclStmt] declaration
# 36| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f_d
# 36| Type = [FloatType] float
# 36| getVariable().getInitializer(): [Initializer] initializer for f_d
# 36| getExpr(): [Literal] 1.0
# 36| Type = [DoubleType] double
# 36| Value = [Literal] 1.0
# 36| ValueCategory = prvalue
# 36| getExpr().getFullyConverted(): [CStyleCast] (float)...
# 36| Conversion = [FloatingPointConversion] floating point conversion
# 36| Type = [FloatType] float
# 36| Value = [CStyleCast] 1.0
# 36| ValueCategory = prvalue
# 38| getStmt(25): [DeclStmt] declaration
# 38| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d_i
# 38| Type = [DoubleType] double
# 38| getVariable().getInitializer(): [Initializer] initializer for d_i
# 38| getExpr(): [Literal] 1
# 38| Type = [IntType] int
# 38| Value = [Literal] 1
# 38| ValueCategory = prvalue
# 38| getExpr().getFullyConverted(): [CStyleCast] (double)...
# 38| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 38| Type = [DoubleType] double
# 38| Value = [CStyleCast] 1.0
# 38| ValueCategory = prvalue
# 39| getStmt(26): [DeclStmt] declaration
# 39| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d_f
# 39| Type = [DoubleType] double
# 39| getVariable().getInitializer(): [Initializer] initializer for d_f
# 39| getExpr(): [Literal] 1.0
# 39| Type = [FloatType] float
# 39| Value = [Literal] 1.0
# 39| ValueCategory = prvalue
# 39| getExpr().getFullyConverted(): [CStyleCast] (double)...
# 39| Conversion = [FloatingPointConversion] floating point conversion
# 39| Type = [DoubleType] double
# 39| Value = [CStyleCast] 1.0
# 39| ValueCategory = prvalue
# 40| getStmt(27): [DeclStmt] declaration
# 40| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d_d
# 40| Type = [DoubleType] double
# 40| getVariable().getInitializer(): [Initializer] initializer for d_d
# 40| getExpr(): [Literal] 1.0
# 40| Type = [DoubleType] double
# 40| Value = [Literal] 1.0
# 40| ValueCategory = prvalue
# 41| getStmt(28): [ReturnStmt] return ...
# 43| [TopLevelFunction] void Foo()
# 43| <params>:
# 43| getEntryPoint(): [BlockStmt] { ... }
# 44| getStmt(0): [DeclStmt] declaration
# 44| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 44| Type = [IntType] int
# 44| getVariable().getInitializer(): [Initializer] initializer for x
# 44| getExpr(): [AddExpr] ... + ...
# 44| Type = [IntType] int
# 44| Value = [AddExpr] 17
# 44| ValueCategory = prvalue
# 44| getLeftOperand(): [Literal] 5
# 44| Type = [IntType] int
# 44| Value = [Literal] 5
# 44| ValueCategory = prvalue
# 44| getRightOperand(): [Literal] 12
# 44| Type = [IntType] int
# 44| Value = [Literal] 12
# 44| ValueCategory = prvalue
# 45| getStmt(1): [DeclStmt] declaration
# 45| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 45| Type = [ShortType] short
# 45| getVariable().getInitializer(): [Initializer] initializer for y
# 45| getExpr(): [Literal] 7
# 45| Type = [IntType] int
# 45| Value = [Literal] 7
# 45| ValueCategory = prvalue
# 45| getExpr().getFullyConverted(): [CStyleCast] (short)...
# 45| Conversion = [IntegralConversion] integral conversion
# 45| Type = [ShortType] short
# 45| Value = [CStyleCast] 7
# 45| ValueCategory = prvalue
# 46| getStmt(2): [ExprStmt] ExprStmt
# 46| getExpr(): [AssignExpr] ... = ...
# 46| Type = [ShortType] short
# 46| ValueCategory = lvalue
# 46| getLValue(): [VariableAccess] y
# 46| Type = [ShortType] short
# 46| ValueCategory = lvalue
# 46| getRValue(): [AddExpr] ... + ...
# 46| Type = [IntType] int
# 46| ValueCategory = prvalue
# 46| getLeftOperand(): [VariableAccess] x
# 46| Type = [IntType] int
# 46| ValueCategory = prvalue(load)
# 46| getRightOperand(): [VariableAccess] y
# 46| Type = [ShortType] short
# 46| ValueCategory = prvalue(load)
# 46| getRightOperand().getFullyConverted(): [CStyleCast] (int)...
# 46| Conversion = [IntegralConversion] integral conversion
# 46| Type = [IntType] int
# 46| ValueCategory = prvalue
# 46| getRValue().getFullyConverted(): [CStyleCast] (short)...
# 46| Conversion = [IntegralConversion] integral conversion
# 46| Type = [ShortType] short
# 46| ValueCategory = prvalue
# 47| getStmt(3): [ExprStmt] ExprStmt
# 47| getExpr(): [AssignExpr] ... = ...
# 47| Type = [IntType] int
# 47| ValueCategory = lvalue
# 47| getLValue(): [VariableAccess] x
# 47| Type = [IntType] int
# 47| ValueCategory = lvalue
# 47| getRValue(): [MulExpr] ... * ...
# 47| Type = [IntType] int
# 47| ValueCategory = prvalue
# 47| getLeftOperand(): [VariableAccess] x
# 47| Type = [IntType] int
# 47| ValueCategory = prvalue(load)
# 47| getRightOperand(): [VariableAccess] y
# 47| Type = [ShortType] short
# 47| ValueCategory = prvalue(load)
# 47| getRightOperand().getFullyConverted(): [CStyleCast] (int)...
# 47| Conversion = [IntegralConversion] integral conversion
# 47| Type = [IntType] int
# 47| ValueCategory = prvalue
# 48| getStmt(4): [ReturnStmt] return ...
# 50| [TopLevelFunction] void IntegerOps(int, int)
# 50| <params>:
# 50| getParameter(0): [Parameter] x
# 50| Type = [IntType] int
# 50| getParameter(1): [Parameter] y
# 50| Type = [IntType] int
# 50| getEntryPoint(): [BlockStmt] { ... }
# 51| getStmt(0): [DeclStmt] declaration
# 51| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 51| Type = [IntType] int
# 53| getStmt(1): [ExprStmt] ExprStmt
# 53| getExpr(): [AssignExpr] ... = ...
# 53| Type = [IntType] int
# 53| ValueCategory = lvalue
# 53| getLValue(): [VariableAccess] z
# 53| Type = [IntType] int
# 53| ValueCategory = lvalue
# 53| getRValue(): [AddExpr] ... + ...
# 53| Type = [IntType] int
# 53| ValueCategory = prvalue
# 53| getLeftOperand(): [VariableAccess] x
# 53| Type = [IntType] int
# 53| ValueCategory = prvalue(load)
# 53| getRightOperand(): [VariableAccess] y
# 53| Type = [IntType] int
# 53| ValueCategory = prvalue(load)
# 54| getStmt(2): [ExprStmt] ExprStmt
# 54| getExpr(): [AssignExpr] ... = ...
# 54| Type = [IntType] int
# 54| ValueCategory = lvalue
# 54| getLValue(): [VariableAccess] z
# 54| Type = [IntType] int
# 54| ValueCategory = lvalue
# 54| getRValue(): [SubExpr] ... - ...
# 54| Type = [IntType] int
# 54| ValueCategory = prvalue
# 54| getLeftOperand(): [VariableAccess] x
# 54| Type = [IntType] int
# 54| ValueCategory = prvalue(load)
# 54| getRightOperand(): [VariableAccess] y
# 54| Type = [IntType] int
# 54| ValueCategory = prvalue(load)
# 55| getStmt(3): [ExprStmt] ExprStmt
# 55| getExpr(): [AssignExpr] ... = ...
# 55| Type = [IntType] int
# 55| ValueCategory = lvalue
# 55| getLValue(): [VariableAccess] z
# 55| Type = [IntType] int
# 55| ValueCategory = lvalue
# 55| getRValue(): [MulExpr] ... * ...
# 55| Type = [IntType] int
# 55| ValueCategory = prvalue
# 55| getLeftOperand(): [VariableAccess] x
# 55| Type = [IntType] int
# 55| ValueCategory = prvalue(load)
# 55| getRightOperand(): [VariableAccess] y
# 55| Type = [IntType] int
# 55| ValueCategory = prvalue(load)
# 56| getStmt(4): [ExprStmt] ExprStmt
# 56| getExpr(): [AssignExpr] ... = ...
# 56| Type = [IntType] int
# 56| ValueCategory = lvalue
# 56| getLValue(): [VariableAccess] z
# 56| Type = [IntType] int
# 56| ValueCategory = lvalue
# 56| getRValue(): [DivExpr] ... / ...
# 56| Type = [IntType] int
# 56| ValueCategory = prvalue
# 56| getLeftOperand(): [VariableAccess] x
# 56| Type = [IntType] int
# 56| ValueCategory = prvalue(load)
# 56| getRightOperand(): [VariableAccess] y
# 56| Type = [IntType] int
# 56| ValueCategory = prvalue(load)
# 57| getStmt(5): [ExprStmt] ExprStmt
# 57| getExpr(): [AssignExpr] ... = ...
# 57| Type = [IntType] int
# 57| ValueCategory = lvalue
# 57| getLValue(): [VariableAccess] z
# 57| Type = [IntType] int
# 57| ValueCategory = lvalue
# 57| getRValue(): [RemExpr] ... % ...
# 57| Type = [IntType] int
# 57| ValueCategory = prvalue
# 57| getLeftOperand(): [VariableAccess] x
# 57| Type = [IntType] int
# 57| ValueCategory = prvalue(load)
# 57| getRightOperand(): [VariableAccess] y
# 57| Type = [IntType] int
# 57| ValueCategory = prvalue(load)
# 59| getStmt(6): [ExprStmt] ExprStmt
# 59| getExpr(): [AssignExpr] ... = ...
# 59| Type = [IntType] int
# 59| ValueCategory = lvalue
# 59| getLValue(): [VariableAccess] z
# 59| Type = [IntType] int
# 59| ValueCategory = lvalue
# 59| getRValue(): [BitwiseAndExpr] ... & ...
# 59| Type = [IntType] int
# 59| ValueCategory = prvalue
# 59| getLeftOperand(): [VariableAccess] x
# 59| Type = [IntType] int
# 59| ValueCategory = prvalue(load)
# 59| getRightOperand(): [VariableAccess] y
# 59| Type = [IntType] int
# 59| ValueCategory = prvalue(load)
# 60| getStmt(7): [ExprStmt] ExprStmt
# 60| getExpr(): [AssignExpr] ... = ...
# 60| Type = [IntType] int
# 60| ValueCategory = lvalue
# 60| getLValue(): [VariableAccess] z
# 60| Type = [IntType] int
# 60| ValueCategory = lvalue
# 60| getRValue(): [BitwiseOrExpr] ... | ...
# 60| Type = [IntType] int
# 60| ValueCategory = prvalue
# 60| getLeftOperand(): [VariableAccess] x
# 60| Type = [IntType] int
# 60| ValueCategory = prvalue(load)
# 60| getRightOperand(): [VariableAccess] y
# 60| Type = [IntType] int
# 60| ValueCategory = prvalue(load)
# 61| getStmt(8): [ExprStmt] ExprStmt
# 61| getExpr(): [AssignExpr] ... = ...
# 61| Type = [IntType] int
# 61| ValueCategory = lvalue
# 61| getLValue(): [VariableAccess] z
# 61| Type = [IntType] int
# 61| ValueCategory = lvalue
# 61| getRValue(): [BitwiseXorExpr] ... ^ ...
# 61| Type = [IntType] int
# 61| ValueCategory = prvalue
# 61| getLeftOperand(): [VariableAccess] x
# 61| Type = [IntType] int
# 61| ValueCategory = prvalue(load)
# 61| getRightOperand(): [VariableAccess] y
# 61| Type = [IntType] int
# 61| ValueCategory = prvalue(load)
# 63| getStmt(9): [ExprStmt] ExprStmt
# 63| getExpr(): [AssignExpr] ... = ...
# 63| Type = [IntType] int
# 63| ValueCategory = lvalue
# 63| getLValue(): [VariableAccess] z
# 63| Type = [IntType] int
# 63| ValueCategory = lvalue
# 63| getRValue(): [LShiftExpr] ... << ...
# 63| Type = [IntType] int
# 63| ValueCategory = prvalue
# 63| getLeftOperand(): [VariableAccess] x
# 63| Type = [IntType] int
# 63| ValueCategory = prvalue(load)
# 63| getRightOperand(): [VariableAccess] y
# 63| Type = [IntType] int
# 63| ValueCategory = prvalue(load)
# 64| getStmt(10): [ExprStmt] ExprStmt
# 64| getExpr(): [AssignExpr] ... = ...
# 64| Type = [IntType] int
# 64| ValueCategory = lvalue
# 64| getLValue(): [VariableAccess] z
# 64| Type = [IntType] int
# 64| ValueCategory = lvalue
# 64| getRValue(): [RShiftExpr] ... >> ...
# 64| Type = [IntType] int
# 64| ValueCategory = prvalue
# 64| getLeftOperand(): [VariableAccess] x
# 64| Type = [IntType] int
# 64| ValueCategory = prvalue(load)
# 64| getRightOperand(): [VariableAccess] y
# 64| Type = [IntType] int
# 64| ValueCategory = prvalue(load)
# 66| getStmt(11): [ExprStmt] ExprStmt
# 66| getExpr(): [AssignExpr] ... = ...
# 66| Type = [IntType] int
# 66| ValueCategory = lvalue
# 66| getLValue(): [VariableAccess] z
# 66| Type = [IntType] int
# 66| ValueCategory = lvalue
# 66| getRValue(): [VariableAccess] x
# 66| Type = [IntType] int
# 66| ValueCategory = prvalue(load)
# 68| getStmt(12): [ExprStmt] ExprStmt
# 68| getExpr(): [AssignAddExpr] ... += ...
# 68| Type = [IntType] int
# 68| ValueCategory = lvalue
# 68| getLValue(): [VariableAccess] z
# 68| Type = [IntType] int
# 68| ValueCategory = lvalue
# 68| getRValue(): [VariableAccess] x
# 68| Type = [IntType] int
# 68| ValueCategory = prvalue(load)
# 69| getStmt(13): [ExprStmt] ExprStmt
# 69| getExpr(): [AssignSubExpr] ... -= ...
# 69| Type = [IntType] int
# 69| ValueCategory = lvalue
# 69| getLValue(): [VariableAccess] z
# 69| Type = [IntType] int
# 69| ValueCategory = lvalue
# 69| getRValue(): [VariableAccess] x
# 69| Type = [IntType] int
# 69| ValueCategory = prvalue(load)
# 70| getStmt(14): [ExprStmt] ExprStmt
# 70| getExpr(): [AssignMulExpr] ... *= ...
# 70| Type = [IntType] int
# 70| ValueCategory = lvalue
# 70| getLValue(): [VariableAccess] z
# 70| Type = [IntType] int
# 70| ValueCategory = lvalue
# 70| getRValue(): [VariableAccess] x
# 70| Type = [IntType] int
# 70| ValueCategory = prvalue(load)
# 71| getStmt(15): [ExprStmt] ExprStmt
# 71| getExpr(): [AssignDivExpr] ... /= ...
# 71| Type = [IntType] int
# 71| ValueCategory = lvalue
# 71| getLValue(): [VariableAccess] z
# 71| Type = [IntType] int
# 71| ValueCategory = lvalue
# 71| getRValue(): [VariableAccess] x
# 71| Type = [IntType] int
# 71| ValueCategory = prvalue(load)
# 72| getStmt(16): [ExprStmt] ExprStmt
# 72| getExpr(): [AssignRemExpr] ... %= ...
# 72| Type = [IntType] int
# 72| ValueCategory = lvalue
# 72| getLValue(): [VariableAccess] z
# 72| Type = [IntType] int
# 72| ValueCategory = lvalue
# 72| getRValue(): [VariableAccess] x
# 72| Type = [IntType] int
# 72| ValueCategory = prvalue(load)
# 74| getStmt(17): [ExprStmt] ExprStmt
# 74| getExpr(): [AssignAndExpr] ... &= ...
# 74| Type = [IntType] int
# 74| ValueCategory = lvalue
# 74| getLValue(): [VariableAccess] z
# 74| Type = [IntType] int
# 74| ValueCategory = lvalue
# 74| getRValue(): [VariableAccess] x
# 74| Type = [IntType] int
# 74| ValueCategory = prvalue(load)
# 75| getStmt(18): [ExprStmt] ExprStmt
# 75| getExpr(): [AssignOrExpr] ... |= ...
# 75| Type = [IntType] int
# 75| ValueCategory = lvalue
# 75| getLValue(): [VariableAccess] z
# 75| Type = [IntType] int
# 75| ValueCategory = lvalue
# 75| getRValue(): [VariableAccess] x
# 75| Type = [IntType] int
# 75| ValueCategory = prvalue(load)
# 76| getStmt(19): [ExprStmt] ExprStmt
# 76| getExpr(): [AssignXorExpr] ... ^= ...
# 76| Type = [IntType] int
# 76| ValueCategory = lvalue
# 76| getLValue(): [VariableAccess] z
# 76| Type = [IntType] int
# 76| ValueCategory = lvalue
# 76| getRValue(): [VariableAccess] x
# 76| Type = [IntType] int
# 76| ValueCategory = prvalue(load)
# 78| getStmt(20): [ExprStmt] ExprStmt
# 78| getExpr(): [AssignLShiftExpr] ... <<= ...
# 78| Type = [IntType] int
# 78| ValueCategory = lvalue
# 78| getLValue(): [VariableAccess] z
# 78| Type = [IntType] int
# 78| ValueCategory = lvalue
# 78| getRValue(): [VariableAccess] x
# 78| Type = [IntType] int
# 78| ValueCategory = prvalue(load)
# 79| getStmt(21): [ExprStmt] ExprStmt
# 79| getExpr(): [AssignRShiftExpr] ... >>= ...
# 79| Type = [IntType] int
# 79| ValueCategory = lvalue
# 79| getLValue(): [VariableAccess] z
# 79| Type = [IntType] int
# 79| ValueCategory = lvalue
# 79| getRValue(): [VariableAccess] x
# 79| Type = [IntType] int
# 79| ValueCategory = prvalue(load)
# 81| getStmt(22): [ExprStmt] ExprStmt
# 81| getExpr(): [AssignExpr] ... = ...
# 81| Type = [IntType] int
# 81| ValueCategory = lvalue
# 81| getLValue(): [VariableAccess] z
# 81| Type = [IntType] int
# 81| ValueCategory = lvalue
# 81| getRValue(): [UnaryPlusExpr] + ...
# 81| Type = [IntType] int
# 81| ValueCategory = prvalue
# 81| getOperand(): [VariableAccess] x
# 81| Type = [IntType] int
# 81| ValueCategory = prvalue(load)
# 82| getStmt(23): [ExprStmt] ExprStmt
# 82| getExpr(): [AssignExpr] ... = ...
# 82| Type = [IntType] int
# 82| ValueCategory = lvalue
# 82| getLValue(): [VariableAccess] z
# 82| Type = [IntType] int
# 82| ValueCategory = lvalue
# 82| getRValue(): [UnaryMinusExpr] - ...
# 82| Type = [IntType] int
# 82| ValueCategory = prvalue
# 82| getOperand(): [VariableAccess] x
# 82| Type = [IntType] int
# 82| ValueCategory = prvalue(load)
# 83| getStmt(24): [ExprStmt] ExprStmt
# 83| getExpr(): [AssignExpr] ... = ...
# 83| Type = [IntType] int
# 83| ValueCategory = lvalue
# 83| getLValue(): [VariableAccess] z
# 83| Type = [IntType] int
# 83| ValueCategory = lvalue
# 83| getRValue(): [ComplementExpr] ~ ...
# 83| Type = [IntType] int
# 83| ValueCategory = prvalue
# 83| getOperand(): [VariableAccess] x
# 83| Type = [IntType] int
# 83| ValueCategory = prvalue(load)
# 84| getStmt(25): [ExprStmt] ExprStmt
# 84| getExpr(): [AssignExpr] ... = ...
# 84| Type = [IntType] int
# 84| ValueCategory = lvalue
# 84| getLValue(): [VariableAccess] z
# 84| Type = [IntType] int
# 84| ValueCategory = lvalue
# 84| getRValue(): [NotExpr] ! ...
# 84| Type = [BoolType] bool
# 84| ValueCategory = prvalue
# 84| getOperand(): [VariableAccess] x
# 84| Type = [IntType] int
# 84| ValueCategory = prvalue(load)
# 84| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 84| Conversion = [BoolConversion] conversion to bool
# 84| Type = [BoolType] bool
# 84| ValueCategory = prvalue
# 84| getRValue().getFullyConverted(): [CStyleCast] (int)...
# 84| Conversion = [IntegralConversion] integral conversion
# 84| Type = [IntType] int
# 84| ValueCategory = prvalue
# 85| getStmt(26): [ReturnStmt] return ...
# 87| [TopLevelFunction] void IntegerCompare(int, int)
# 87| <params>:
# 87| getParameter(0): [Parameter] x
# 87| Type = [IntType] int
# 87| getParameter(1): [Parameter] y
# 87| Type = [IntType] int
# 87| getEntryPoint(): [BlockStmt] { ... }
# 88| getStmt(0): [DeclStmt] declaration
# 88| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 88| Type = [BoolType] bool
# 90| getStmt(1): [ExprStmt] ExprStmt
# 90| getExpr(): [AssignExpr] ... = ...
# 90| Type = [BoolType] bool
# 90| ValueCategory = lvalue
# 90| getLValue(): [VariableAccess] b
# 90| Type = [BoolType] bool
# 90| ValueCategory = lvalue
# 90| getRValue(): [EQExpr] ... == ...
# 90| Type = [BoolType] bool
# 90| ValueCategory = prvalue
# 90| getLeftOperand(): [VariableAccess] x
# 90| Type = [IntType] int
# 90| ValueCategory = prvalue(load)
# 90| getRightOperand(): [VariableAccess] y
# 90| Type = [IntType] int
# 90| ValueCategory = prvalue(load)
# 91| getStmt(2): [ExprStmt] ExprStmt
# 91| getExpr(): [AssignExpr] ... = ...
# 91| Type = [BoolType] bool
# 91| ValueCategory = lvalue
# 91| getLValue(): [VariableAccess] b
# 91| Type = [BoolType] bool
# 91| ValueCategory = lvalue
# 91| getRValue(): [NEExpr] ... != ...
# 91| Type = [BoolType] bool
# 91| ValueCategory = prvalue
# 91| getLeftOperand(): [VariableAccess] x
# 91| Type = [IntType] int
# 91| ValueCategory = prvalue(load)
# 91| getRightOperand(): [VariableAccess] y
# 91| Type = [IntType] int
# 91| ValueCategory = prvalue(load)
# 92| getStmt(3): [ExprStmt] ExprStmt
# 92| getExpr(): [AssignExpr] ... = ...
# 92| Type = [BoolType] bool
# 92| ValueCategory = lvalue
# 92| getLValue(): [VariableAccess] b
# 92| Type = [BoolType] bool
# 92| ValueCategory = lvalue
# 92| getRValue(): [LTExpr] ... < ...
# 92| Type = [BoolType] bool
# 92| ValueCategory = prvalue
# 92| getLesserOperand(): [VariableAccess] x
# 92| Type = [IntType] int
# 92| ValueCategory = prvalue(load)
# 92| getGreaterOperand(): [VariableAccess] y
# 92| Type = [IntType] int
# 92| ValueCategory = prvalue(load)
# 93| getStmt(4): [ExprStmt] ExprStmt
# 93| getExpr(): [AssignExpr] ... = ...
# 93| Type = [BoolType] bool
# 93| ValueCategory = lvalue
# 93| getLValue(): [VariableAccess] b
# 93| Type = [BoolType] bool
# 93| ValueCategory = lvalue
# 93| getRValue(): [GTExpr] ... > ...
# 93| Type = [BoolType] bool
# 93| ValueCategory = prvalue
# 93| getGreaterOperand(): [VariableAccess] x
# 93| Type = [IntType] int
# 93| ValueCategory = prvalue(load)
# 93| getLesserOperand(): [VariableAccess] y
# 93| Type = [IntType] int
# 93| ValueCategory = prvalue(load)
# 94| getStmt(5): [ExprStmt] ExprStmt
# 94| getExpr(): [AssignExpr] ... = ...
# 94| Type = [BoolType] bool
# 94| ValueCategory = lvalue
# 94| getLValue(): [VariableAccess] b
# 94| Type = [BoolType] bool
# 94| ValueCategory = lvalue
# 94| getRValue(): [LEExpr] ... <= ...
# 94| Type = [BoolType] bool
# 94| ValueCategory = prvalue
# 94| getLesserOperand(): [VariableAccess] x
# 94| Type = [IntType] int
# 94| ValueCategory = prvalue(load)
# 94| getGreaterOperand(): [VariableAccess] y
# 94| Type = [IntType] int
# 94| ValueCategory = prvalue(load)
# 95| getStmt(6): [ExprStmt] ExprStmt
# 95| getExpr(): [AssignExpr] ... = ...
# 95| Type = [BoolType] bool
# 95| ValueCategory = lvalue
# 95| getLValue(): [VariableAccess] b
# 95| Type = [BoolType] bool
# 95| ValueCategory = lvalue
# 95| getRValue(): [GEExpr] ... >= ...
# 95| Type = [BoolType] bool
# 95| ValueCategory = prvalue
# 95| getGreaterOperand(): [VariableAccess] x
# 95| Type = [IntType] int
# 95| ValueCategory = prvalue(load)
# 95| getLesserOperand(): [VariableAccess] y
# 95| Type = [IntType] int
# 95| ValueCategory = prvalue(load)
# 96| getStmt(7): [ReturnStmt] return ...
# 98| [TopLevelFunction] void IntegerCrement(int)
# 98| <params>:
# 98| getParameter(0): [Parameter] x
# 98| Type = [IntType] int
# 98| getEntryPoint(): [BlockStmt] { ... }
# 99| getStmt(0): [DeclStmt] declaration
# 99| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 99| Type = [IntType] int
# 101| getStmt(1): [ExprStmt] ExprStmt
# 101| getExpr(): [AssignExpr] ... = ...
# 101| Type = [IntType] int
# 101| ValueCategory = lvalue
# 101| getLValue(): [VariableAccess] y
# 101| Type = [IntType] int
# 101| ValueCategory = lvalue
# 101| getRValue(): [PrefixIncrExpr] ++ ...
# 101| Type = [IntType] int
# 101| ValueCategory = prvalue
# 101| getOperand(): [VariableAccess] x
# 101| Type = [IntType] int
# 101| ValueCategory = lvalue
# 102| getStmt(2): [ExprStmt] ExprStmt
# 102| getExpr(): [AssignExpr] ... = ...
# 102| Type = [IntType] int
# 102| ValueCategory = lvalue
# 102| getLValue(): [VariableAccess] y
# 102| Type = [IntType] int
# 102| ValueCategory = lvalue
# 102| getRValue(): [PrefixDecrExpr] -- ...
# 102| Type = [IntType] int
# 102| ValueCategory = prvalue
# 102| getOperand(): [VariableAccess] x
# 102| Type = [IntType] int
# 102| ValueCategory = lvalue
# 103| getStmt(3): [ExprStmt] ExprStmt
# 103| getExpr(): [AssignExpr] ... = ...
# 103| Type = [IntType] int
# 103| ValueCategory = lvalue
# 103| getLValue(): [VariableAccess] y
# 103| Type = [IntType] int
# 103| ValueCategory = lvalue
# 103| getRValue(): [PostfixIncrExpr] ... ++
# 103| Type = [IntType] int
# 103| ValueCategory = prvalue
# 103| getOperand(): [VariableAccess] x
# 103| Type = [IntType] int
# 103| ValueCategory = lvalue
# 104| getStmt(4): [ExprStmt] ExprStmt
# 104| getExpr(): [AssignExpr] ... = ...
# 104| Type = [IntType] int
# 104| ValueCategory = lvalue
# 104| getLValue(): [VariableAccess] y
# 104| Type = [IntType] int
# 104| ValueCategory = lvalue
# 104| getRValue(): [PostfixDecrExpr] ... --
# 104| Type = [IntType] int
# 104| ValueCategory = prvalue
# 104| getOperand(): [VariableAccess] x
# 104| Type = [IntType] int
# 104| ValueCategory = lvalue
# 105| getStmt(5): [ReturnStmt] return ...
# 107| [TopLevelFunction] void IntegerCrement_LValue(int)
# 107| <params>:
# 107| getParameter(0): [Parameter] x
# 107| Type = [IntType] int
# 107| getEntryPoint(): [BlockStmt] { ... }
# 108| getStmt(0): [DeclStmt] declaration
# 108| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p
# 108| Type = [IntPointerType] int *
# 110| getStmt(1): [ExprStmt] ExprStmt
# 110| getExpr(): [AssignExpr] ... = ...
# 110| Type = [IntPointerType] int *
# 110| ValueCategory = lvalue
# 110| getLValue(): [VariableAccess] p
# 110| Type = [IntPointerType] int *
# 110| ValueCategory = lvalue
# 110| getRValue(): [AddressOfExpr] & ...
# 110| Type = [IntPointerType] int *
# 110| ValueCategory = prvalue
# 110| getOperand(): [PrefixIncrExpr] ++ ...
# 110| Type = [IntType] int
# 110| ValueCategory = lvalue
# 110| getOperand(): [VariableAccess] x
# 110| Type = [IntType] int
# 110| ValueCategory = lvalue
# 110| getOperand().getFullyConverted(): [ParenthesisExpr] (...)
# 110| Type = [IntType] int
# 110| ValueCategory = lvalue
# 111| getStmt(2): [ExprStmt] ExprStmt
# 111| getExpr(): [AssignExpr] ... = ...
# 111| Type = [IntPointerType] int *
# 111| ValueCategory = lvalue
# 111| getLValue(): [VariableAccess] p
# 111| Type = [IntPointerType] int *
# 111| ValueCategory = lvalue
# 111| getRValue(): [AddressOfExpr] & ...
# 111| Type = [IntPointerType] int *
# 111| ValueCategory = prvalue
# 111| getOperand(): [PrefixDecrExpr] -- ...
# 111| Type = [IntType] int
# 111| ValueCategory = lvalue
# 111| getOperand(): [VariableAccess] x
# 111| Type = [IntType] int
# 111| ValueCategory = lvalue
# 111| getOperand().getFullyConverted(): [ParenthesisExpr] (...)
# 111| Type = [IntType] int
# 111| ValueCategory = lvalue
# 112| getStmt(3): [ReturnStmt] return ...
# 114| [TopLevelFunction] void FloatOps(double, double)
# 114| <params>:
# 114| getParameter(0): [Parameter] x
# 114| Type = [DoubleType] double
# 114| getParameter(1): [Parameter] y
# 114| Type = [DoubleType] double
# 114| getEntryPoint(): [BlockStmt] { ... }
# 115| getStmt(0): [DeclStmt] declaration
# 115| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 115| Type = [DoubleType] double
# 117| getStmt(1): [ExprStmt] ExprStmt
# 117| getExpr(): [AssignExpr] ... = ...
# 117| Type = [DoubleType] double
# 117| ValueCategory = lvalue
# 117| getLValue(): [VariableAccess] z
# 117| Type = [DoubleType] double
# 117| ValueCategory = lvalue
# 117| getRValue(): [AddExpr] ... + ...
# 117| Type = [DoubleType] double
# 117| ValueCategory = prvalue
# 117| getLeftOperand(): [VariableAccess] x
# 117| Type = [DoubleType] double
# 117| ValueCategory = prvalue(load)
# 117| getRightOperand(): [VariableAccess] y
# 117| Type = [DoubleType] double
# 117| ValueCategory = prvalue(load)
# 118| getStmt(2): [ExprStmt] ExprStmt
# 118| getExpr(): [AssignExpr] ... = ...
# 118| Type = [DoubleType] double
# 118| ValueCategory = lvalue
# 118| getLValue(): [VariableAccess] z
# 118| Type = [DoubleType] double
# 118| ValueCategory = lvalue
# 118| getRValue(): [SubExpr] ... - ...
# 118| Type = [DoubleType] double
# 118| ValueCategory = prvalue
# 118| getLeftOperand(): [VariableAccess] x
# 118| Type = [DoubleType] double
# 118| ValueCategory = prvalue(load)
# 118| getRightOperand(): [VariableAccess] y
# 118| Type = [DoubleType] double
# 118| ValueCategory = prvalue(load)
# 119| getStmt(3): [ExprStmt] ExprStmt
# 119| getExpr(): [AssignExpr] ... = ...
# 119| Type = [DoubleType] double
# 119| ValueCategory = lvalue
# 119| getLValue(): [VariableAccess] z
# 119| Type = [DoubleType] double
# 119| ValueCategory = lvalue
# 119| getRValue(): [MulExpr] ... * ...
# 119| Type = [DoubleType] double
# 119| ValueCategory = prvalue
# 119| getLeftOperand(): [VariableAccess] x
# 119| Type = [DoubleType] double
# 119| ValueCategory = prvalue(load)
# 119| getRightOperand(): [VariableAccess] y
# 119| Type = [DoubleType] double
# 119| ValueCategory = prvalue(load)
# 120| getStmt(4): [ExprStmt] ExprStmt
# 120| getExpr(): [AssignExpr] ... = ...
# 120| Type = [DoubleType] double
# 120| ValueCategory = lvalue
# 120| getLValue(): [VariableAccess] z
# 120| Type = [DoubleType] double
# 120| ValueCategory = lvalue
# 120| getRValue(): [DivExpr] ... / ...
# 120| Type = [DoubleType] double
# 120| ValueCategory = prvalue
# 120| getLeftOperand(): [VariableAccess] x
# 120| Type = [DoubleType] double
# 120| ValueCategory = prvalue(load)
# 120| getRightOperand(): [VariableAccess] y
# 120| Type = [DoubleType] double
# 120| ValueCategory = prvalue(load)
# 122| getStmt(5): [ExprStmt] ExprStmt
# 122| getExpr(): [AssignExpr] ... = ...
# 122| Type = [DoubleType] double
# 122| ValueCategory = lvalue
# 122| getLValue(): [VariableAccess] z
# 122| Type = [DoubleType] double
# 122| ValueCategory = lvalue
# 122| getRValue(): [VariableAccess] x
# 122| Type = [DoubleType] double
# 122| ValueCategory = prvalue(load)
# 124| getStmt(6): [ExprStmt] ExprStmt
# 124| getExpr(): [AssignAddExpr] ... += ...
# 124| Type = [DoubleType] double
# 124| ValueCategory = lvalue
# 124| getLValue(): [VariableAccess] z
# 124| Type = [DoubleType] double
# 124| ValueCategory = lvalue
# 124| getRValue(): [VariableAccess] x
# 124| Type = [DoubleType] double
# 124| ValueCategory = prvalue(load)
# 125| getStmt(7): [ExprStmt] ExprStmt
# 125| getExpr(): [AssignSubExpr] ... -= ...
# 125| Type = [DoubleType] double
# 125| ValueCategory = lvalue
# 125| getLValue(): [VariableAccess] z
# 125| Type = [DoubleType] double
# 125| ValueCategory = lvalue
# 125| getRValue(): [VariableAccess] x
# 125| Type = [DoubleType] double
# 125| ValueCategory = prvalue(load)
# 126| getStmt(8): [ExprStmt] ExprStmt
# 126| getExpr(): [AssignMulExpr] ... *= ...
# 126| Type = [DoubleType] double
# 126| ValueCategory = lvalue
# 126| getLValue(): [VariableAccess] z
# 126| Type = [DoubleType] double
# 126| ValueCategory = lvalue
# 126| getRValue(): [VariableAccess] x
# 126| Type = [DoubleType] double
# 126| ValueCategory = prvalue(load)
# 127| getStmt(9): [ExprStmt] ExprStmt
# 127| getExpr(): [AssignDivExpr] ... /= ...
# 127| Type = [DoubleType] double
# 127| ValueCategory = lvalue
# 127| getLValue(): [VariableAccess] z
# 127| Type = [DoubleType] double
# 127| ValueCategory = lvalue
# 127| getRValue(): [VariableAccess] x
# 127| Type = [DoubleType] double
# 127| ValueCategory = prvalue(load)
# 129| getStmt(10): [ExprStmt] ExprStmt
# 129| getExpr(): [AssignExpr] ... = ...
# 129| Type = [DoubleType] double
# 129| ValueCategory = lvalue
# 129| getLValue(): [VariableAccess] z
# 129| Type = [DoubleType] double
# 129| ValueCategory = lvalue
# 129| getRValue(): [UnaryPlusExpr] + ...
# 129| Type = [DoubleType] double
# 129| ValueCategory = prvalue
# 129| getOperand(): [VariableAccess] x
# 129| Type = [DoubleType] double
# 129| ValueCategory = prvalue(load)
# 130| getStmt(11): [ExprStmt] ExprStmt
# 130| getExpr(): [AssignExpr] ... = ...
# 130| Type = [DoubleType] double
# 130| ValueCategory = lvalue
# 130| getLValue(): [VariableAccess] z
# 130| Type = [DoubleType] double
# 130| ValueCategory = lvalue
# 130| getRValue(): [UnaryMinusExpr] - ...
# 130| Type = [DoubleType] double
# 130| ValueCategory = prvalue
# 130| getOperand(): [VariableAccess] x
# 130| Type = [DoubleType] double
# 130| ValueCategory = prvalue(load)
# 131| getStmt(12): [ReturnStmt] return ...
# 133| [TopLevelFunction] void FloatCompare(double, double)
# 133| <params>:
# 133| getParameter(0): [Parameter] x
# 133| Type = [DoubleType] double
# 133| getParameter(1): [Parameter] y
# 133| Type = [DoubleType] double
# 133| getEntryPoint(): [BlockStmt] { ... }
# 134| getStmt(0): [DeclStmt] declaration
# 134| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 134| Type = [BoolType] bool
# 136| getStmt(1): [ExprStmt] ExprStmt
# 136| getExpr(): [AssignExpr] ... = ...
# 136| Type = [BoolType] bool
# 136| ValueCategory = lvalue
# 136| getLValue(): [VariableAccess] b
# 136| Type = [BoolType] bool
# 136| ValueCategory = lvalue
# 136| getRValue(): [EQExpr] ... == ...
# 136| Type = [BoolType] bool
# 136| ValueCategory = prvalue
# 136| getLeftOperand(): [VariableAccess] x
# 136| Type = [DoubleType] double
# 136| ValueCategory = prvalue(load)
# 136| getRightOperand(): [VariableAccess] y
# 136| Type = [DoubleType] double
# 136| ValueCategory = prvalue(load)
# 137| getStmt(2): [ExprStmt] ExprStmt
# 137| getExpr(): [AssignExpr] ... = ...
# 137| Type = [BoolType] bool
# 137| ValueCategory = lvalue
# 137| getLValue(): [VariableAccess] b
# 137| Type = [BoolType] bool
# 137| ValueCategory = lvalue
# 137| getRValue(): [NEExpr] ... != ...
# 137| Type = [BoolType] bool
# 137| ValueCategory = prvalue
# 137| getLeftOperand(): [VariableAccess] x
# 137| Type = [DoubleType] double
# 137| ValueCategory = prvalue(load)
# 137| getRightOperand(): [VariableAccess] y
# 137| Type = [DoubleType] double
# 137| ValueCategory = prvalue(load)
# 138| getStmt(3): [ExprStmt] ExprStmt
# 138| getExpr(): [AssignExpr] ... = ...
# 138| Type = [BoolType] bool
# 138| ValueCategory = lvalue
# 138| getLValue(): [VariableAccess] b
# 138| Type = [BoolType] bool
# 138| ValueCategory = lvalue
# 138| getRValue(): [LTExpr] ... < ...
# 138| Type = [BoolType] bool
# 138| ValueCategory = prvalue
# 138| getLesserOperand(): [VariableAccess] x
# 138| Type = [DoubleType] double
# 138| ValueCategory = prvalue(load)
# 138| getGreaterOperand(): [VariableAccess] y
# 138| Type = [DoubleType] double
# 138| ValueCategory = prvalue(load)
# 139| getStmt(4): [ExprStmt] ExprStmt
# 139| getExpr(): [AssignExpr] ... = ...
# 139| Type = [BoolType] bool
# 139| ValueCategory = lvalue
# 139| getLValue(): [VariableAccess] b
# 139| Type = [BoolType] bool
# 139| ValueCategory = lvalue
# 139| getRValue(): [GTExpr] ... > ...
# 139| Type = [BoolType] bool
# 139| ValueCategory = prvalue
# 139| getGreaterOperand(): [VariableAccess] x
# 139| Type = [DoubleType] double
# 139| ValueCategory = prvalue(load)
# 139| getLesserOperand(): [VariableAccess] y
# 139| Type = [DoubleType] double
# 139| ValueCategory = prvalue(load)
# 140| getStmt(5): [ExprStmt] ExprStmt
# 140| getExpr(): [AssignExpr] ... = ...
# 140| Type = [BoolType] bool
# 140| ValueCategory = lvalue
# 140| getLValue(): [VariableAccess] b
# 140| Type = [BoolType] bool
# 140| ValueCategory = lvalue
# 140| getRValue(): [LEExpr] ... <= ...
# 140| Type = [BoolType] bool
# 140| ValueCategory = prvalue
# 140| getLesserOperand(): [VariableAccess] x
# 140| Type = [DoubleType] double
# 140| ValueCategory = prvalue(load)
# 140| getGreaterOperand(): [VariableAccess] y
# 140| Type = [DoubleType] double
# 140| ValueCategory = prvalue(load)
# 141| getStmt(6): [ExprStmt] ExprStmt
# 141| getExpr(): [AssignExpr] ... = ...
# 141| Type = [BoolType] bool
# 141| ValueCategory = lvalue
# 141| getLValue(): [VariableAccess] b
# 141| Type = [BoolType] bool
# 141| ValueCategory = lvalue
# 141| getRValue(): [GEExpr] ... >= ...
# 141| Type = [BoolType] bool
# 141| ValueCategory = prvalue
# 141| getGreaterOperand(): [VariableAccess] x
# 141| Type = [DoubleType] double
# 141| ValueCategory = prvalue(load)
# 141| getLesserOperand(): [VariableAccess] y
# 141| Type = [DoubleType] double
# 141| ValueCategory = prvalue(load)
# 142| getStmt(7): [ReturnStmt] return ...
# 144| [TopLevelFunction] void FloatCrement(float)
# 144| <params>:
# 144| getParameter(0): [Parameter] x
# 144| Type = [FloatType] float
# 144| getEntryPoint(): [BlockStmt] { ... }
# 145| getStmt(0): [DeclStmt] declaration
# 145| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 145| Type = [FloatType] float
# 147| getStmt(1): [ExprStmt] ExprStmt
# 147| getExpr(): [AssignExpr] ... = ...
# 147| Type = [FloatType] float
# 147| ValueCategory = lvalue
# 147| getLValue(): [VariableAccess] y
# 147| Type = [FloatType] float
# 147| ValueCategory = lvalue
# 147| getRValue(): [PrefixIncrExpr] ++ ...
# 147| Type = [FloatType] float
# 147| ValueCategory = prvalue
# 147| getOperand(): [VariableAccess] x
# 147| Type = [FloatType] float
# 147| ValueCategory = lvalue
# 148| getStmt(2): [ExprStmt] ExprStmt
# 148| getExpr(): [AssignExpr] ... = ...
# 148| Type = [FloatType] float
# 148| ValueCategory = lvalue
# 148| getLValue(): [VariableAccess] y
# 148| Type = [FloatType] float
# 148| ValueCategory = lvalue
# 148| getRValue(): [PrefixDecrExpr] -- ...
# 148| Type = [FloatType] float
# 148| ValueCategory = prvalue
# 148| getOperand(): [VariableAccess] x
# 148| Type = [FloatType] float
# 148| ValueCategory = lvalue
# 149| getStmt(3): [ExprStmt] ExprStmt
# 149| getExpr(): [AssignExpr] ... = ...
# 149| Type = [FloatType] float
# 149| ValueCategory = lvalue
# 149| getLValue(): [VariableAccess] y
# 149| Type = [FloatType] float
# 149| ValueCategory = lvalue
# 149| getRValue(): [PostfixIncrExpr] ... ++
# 149| Type = [FloatType] float
# 149| ValueCategory = prvalue
# 149| getOperand(): [VariableAccess] x
# 149| Type = [FloatType] float
# 149| ValueCategory = lvalue
# 150| getStmt(4): [ExprStmt] ExprStmt
# 150| getExpr(): [AssignExpr] ... = ...
# 150| Type = [FloatType] float
# 150| ValueCategory = lvalue
# 150| getLValue(): [VariableAccess] y
# 150| Type = [FloatType] float
# 150| ValueCategory = lvalue
# 150| getRValue(): [PostfixDecrExpr] ... --
# 150| Type = [FloatType] float
# 150| ValueCategory = prvalue
# 150| getOperand(): [VariableAccess] x
# 150| Type = [FloatType] float
# 150| ValueCategory = lvalue
# 151| getStmt(5): [ReturnStmt] return ...
# 153| [TopLevelFunction] void PointerOps(int*, int)
# 153| <params>:
# 153| getParameter(0): [Parameter] p
# 153| Type = [IntPointerType] int *
# 153| getParameter(1): [Parameter] i
# 153| Type = [IntType] int
# 153| getEntryPoint(): [BlockStmt] { ... }
# 154| getStmt(0): [DeclStmt] declaration
# 154| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q
# 154| Type = [IntPointerType] int *
# 155| getStmt(1): [DeclStmt] declaration
# 155| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 155| Type = [BoolType] bool
# 157| getStmt(2): [ExprStmt] ExprStmt
# 157| getExpr(): [AssignExpr] ... = ...
# 157| Type = [IntPointerType] int *
# 157| ValueCategory = lvalue
# 157| getLValue(): [VariableAccess] q
# 157| Type = [IntPointerType] int *
# 157| ValueCategory = lvalue
# 157| getRValue(): [PointerAddExpr] ... + ...
# 157| Type = [IntPointerType] int *
# 157| ValueCategory = prvalue
# 157| getLeftOperand(): [VariableAccess] p
# 157| Type = [IntPointerType] int *
# 157| ValueCategory = prvalue(load)
# 157| getRightOperand(): [VariableAccess] i
# 157| Type = [IntType] int
# 157| ValueCategory = prvalue(load)
# 158| getStmt(3): [ExprStmt] ExprStmt
# 158| getExpr(): [AssignExpr] ... = ...
# 158| Type = [IntPointerType] int *
# 158| ValueCategory = lvalue
# 158| getLValue(): [VariableAccess] q
# 158| Type = [IntPointerType] int *
# 158| ValueCategory = lvalue
# 158| getRValue(): [PointerAddExpr] ... + ...
# 158| Type = [IntPointerType] int *
# 158| ValueCategory = prvalue
# 158| getLeftOperand(): [VariableAccess] i
# 158| Type = [IntType] int
# 158| ValueCategory = prvalue(load)
# 158| getRightOperand(): [VariableAccess] p
# 158| Type = [IntPointerType] int *
# 158| ValueCategory = prvalue(load)
# 159| getStmt(4): [ExprStmt] ExprStmt
# 159| getExpr(): [AssignExpr] ... = ...
# 159| Type = [IntPointerType] int *
# 159| ValueCategory = lvalue
# 159| getLValue(): [VariableAccess] q
# 159| Type = [IntPointerType] int *
# 159| ValueCategory = lvalue
# 159| getRValue(): [PointerSubExpr] ... - ...
# 159| Type = [IntPointerType] int *
# 159| ValueCategory = prvalue
# 159| getLeftOperand(): [VariableAccess] p
# 159| Type = [IntPointerType] int *
# 159| ValueCategory = prvalue(load)
# 159| getRightOperand(): [VariableAccess] i
# 159| Type = [IntType] int
# 159| ValueCategory = prvalue(load)
# 160| getStmt(5): [ExprStmt] ExprStmt
# 160| getExpr(): [AssignExpr] ... = ...
# 160| Type = [IntType] int
# 160| ValueCategory = lvalue
# 160| getLValue(): [VariableAccess] i
# 160| Type = [IntType] int
# 160| ValueCategory = lvalue
# 160| getRValue(): [PointerDiffExpr] ... - ...
# 160| Type = [LongType] long
# 160| ValueCategory = prvalue
# 160| getLeftOperand(): [VariableAccess] p
# 160| Type = [IntPointerType] int *
# 160| ValueCategory = prvalue(load)
# 160| getRightOperand(): [VariableAccess] q
# 160| Type = [IntPointerType] int *
# 160| ValueCategory = prvalue(load)
# 160| getRValue().getFullyConverted(): [CStyleCast] (int)...
# 160| Conversion = [IntegralConversion] integral conversion
# 160| Type = [IntType] int
# 160| ValueCategory = prvalue
# 162| getStmt(6): [ExprStmt] ExprStmt
# 162| getExpr(): [AssignExpr] ... = ...
# 162| Type = [IntPointerType] int *
# 162| ValueCategory = lvalue
# 162| getLValue(): [VariableAccess] q
# 162| Type = [IntPointerType] int *
# 162| ValueCategory = lvalue
# 162| getRValue(): [VariableAccess] p
# 162| Type = [IntPointerType] int *
# 162| ValueCategory = prvalue(load)
# 164| getStmt(7): [ExprStmt] ExprStmt
# 164| getExpr(): [AssignPointerAddExpr] ... += ...
# 164| Type = [IntPointerType] int *
# 164| ValueCategory = lvalue
# 164| getLValue(): [VariableAccess] q
# 164| Type = [IntPointerType] int *
# 164| ValueCategory = lvalue
# 164| getRValue(): [VariableAccess] i
# 164| Type = [IntType] int
# 164| ValueCategory = prvalue(load)
# 165| getStmt(8): [ExprStmt] ExprStmt
# 165| getExpr(): [AssignPointerSubExpr] ... -= ...
# 165| Type = [IntPointerType] int *
# 165| ValueCategory = lvalue
# 165| getLValue(): [VariableAccess] q
# 165| Type = [IntPointerType] int *
# 165| ValueCategory = lvalue
# 165| getRValue(): [VariableAccess] i
# 165| Type = [IntType] int
# 165| ValueCategory = prvalue(load)
# 167| getStmt(9): [ExprStmt] ExprStmt
# 167| getExpr(): [AssignExpr] ... = ...
# 167| Type = [BoolType] bool
# 167| ValueCategory = lvalue
# 167| getLValue(): [VariableAccess] b
# 167| Type = [BoolType] bool
# 167| ValueCategory = lvalue
# 167| getRValue(): [VariableAccess] p
# 167| Type = [IntPointerType] int *
# 167| ValueCategory = prvalue(load)
# 167| getRValue().getFullyConverted(): [CStyleCast] (bool)...
# 167| Conversion = [BoolConversion] conversion to bool
# 167| Type = [BoolType] bool
# 167| ValueCategory = prvalue
# 168| getStmt(10): [ExprStmt] ExprStmt
# 168| getExpr(): [AssignExpr] ... = ...
# 168| Type = [BoolType] bool
# 168| ValueCategory = lvalue
# 168| getLValue(): [VariableAccess] b
# 168| Type = [BoolType] bool
# 168| ValueCategory = lvalue
# 168| getRValue(): [NotExpr] ! ...
# 168| Type = [BoolType] bool
# 168| ValueCategory = prvalue
# 168| getOperand(): [VariableAccess] p
# 168| Type = [IntPointerType] int *
# 168| ValueCategory = prvalue(load)
# 168| getOperand().getFullyConverted(): [CStyleCast] (bool)...
# 168| Conversion = [BoolConversion] conversion to bool
# 168| Type = [BoolType] bool
# 168| ValueCategory = prvalue
# 169| getStmt(11): [ReturnStmt] return ...
# 171| [TopLevelFunction] void ArrayAccess(int*, int)
# 171| <params>:
# 171| getParameter(0): [Parameter] p
# 171| Type = [IntPointerType] int *
# 171| getParameter(1): [Parameter] i
# 171| Type = [IntType] int
# 171| getEntryPoint(): [BlockStmt] { ... }
# 172| getStmt(0): [DeclStmt] declaration
# 172| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 172| Type = [IntType] int
# 174| getStmt(1): [ExprStmt] ExprStmt
# 174| getExpr(): [AssignExpr] ... = ...
# 174| Type = [IntType] int
# 174| ValueCategory = lvalue
# 174| getLValue(): [VariableAccess] x
# 174| Type = [IntType] int
# 174| ValueCategory = lvalue
# 174| getRValue(): [ArrayExpr] access to array
# 174| Type = [IntType] int
# 174| ValueCategory = prvalue(load)
# 174| getArrayBase(): [VariableAccess] p
# 174| Type = [IntPointerType] int *
# 174| ValueCategory = prvalue(load)
# 174| getArrayOffset(): [VariableAccess] i
# 174| Type = [IntType] int
# 174| ValueCategory = prvalue(load)
# 175| getStmt(2): [ExprStmt] ExprStmt
# 175| getExpr(): [AssignExpr] ... = ...
# 175| Type = [IntType] int
# 175| ValueCategory = lvalue
# 175| getLValue(): [VariableAccess] x
# 175| Type = [IntType] int
# 175| ValueCategory = lvalue
# 175| getRValue(): [ArrayExpr] access to array
# 175| Type = [IntType] int
# 175| ValueCategory = prvalue(load)
# 175| getArrayBase(): [VariableAccess] p
# 175| Type = [IntPointerType] int *
# 175| ValueCategory = prvalue(load)
# 175| getArrayOffset(): [VariableAccess] i
# 175| Type = [IntType] int
# 175| ValueCategory = prvalue(load)
# 177| getStmt(3): [ExprStmt] ExprStmt
# 177| getExpr(): [AssignExpr] ... = ...
# 177| Type = [IntType] int
# 177| ValueCategory = lvalue
# 177| getLValue(): [ArrayExpr] access to array
# 177| Type = [IntType] int
# 177| ValueCategory = lvalue
# 177| getArrayBase(): [VariableAccess] p
# 177| Type = [IntPointerType] int *
# 177| ValueCategory = prvalue(load)
# 177| getArrayOffset(): [VariableAccess] i
# 177| Type = [IntType] int
# 177| ValueCategory = prvalue(load)
# 177| getRValue(): [VariableAccess] x
# 177| Type = [IntType] int
# 177| ValueCategory = prvalue(load)
# 178| getStmt(4): [ExprStmt] ExprStmt
# 178| getExpr(): [AssignExpr] ... = ...
# 178| Type = [IntType] int
# 178| ValueCategory = lvalue
# 178| getLValue(): [ArrayExpr] access to array
# 178| Type = [IntType] int
# 178| ValueCategory = lvalue
# 178| getArrayBase(): [VariableAccess] p
# 178| Type = [IntPointerType] int *
# 178| ValueCategory = prvalue(load)
# 178| getArrayOffset(): [VariableAccess] i
# 178| Type = [IntType] int
# 178| ValueCategory = prvalue(load)
# 178| getRValue(): [VariableAccess] x
# 178| Type = [IntType] int
# 178| ValueCategory = prvalue(load)
# 180| getStmt(5): [DeclStmt] declaration
# 180| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
# 180| Type = [ArrayType] int[10]
# 181| getStmt(6): [ExprStmt] ExprStmt
# 181| getExpr(): [AssignExpr] ... = ...
# 181| Type = [IntType] int
# 181| ValueCategory = lvalue
# 181| getLValue(): [VariableAccess] x
# 181| Type = [IntType] int
# 181| ValueCategory = lvalue
# 181| getRValue(): [ArrayExpr] access to array
# 181| Type = [IntType] int
# 181| ValueCategory = prvalue(load)
# 181| getArrayBase(): [VariableAccess] a
# 181| Type = [ArrayType] int[10]
# 181| ValueCategory = lvalue
# 181| getArrayOffset(): [VariableAccess] i
# 181| Type = [IntType] int
# 181| ValueCategory = prvalue(load)
# 181| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 181| Type = [IntPointerType] int *
# 181| ValueCategory = prvalue
# 182| getStmt(7): [ExprStmt] ExprStmt
# 182| getExpr(): [AssignExpr] ... = ...
# 182| Type = [IntType] int
# 182| ValueCategory = lvalue
# 182| getLValue(): [VariableAccess] x
# 182| Type = [IntType] int
# 182| ValueCategory = lvalue
# 182| getRValue(): [ArrayExpr] access to array
# 182| Type = [IntType] int
# 182| ValueCategory = prvalue(load)
# 182| getArrayBase(): [VariableAccess] a
# 182| Type = [ArrayType] int[10]
# 182| ValueCategory = lvalue
# 182| getArrayOffset(): [VariableAccess] i
# 182| Type = [IntType] int
# 182| ValueCategory = prvalue(load)
# 182| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 182| Type = [IntPointerType] int *
# 182| ValueCategory = prvalue
# 183| getStmt(8): [ExprStmt] ExprStmt
# 183| getExpr(): [AssignExpr] ... = ...
# 183| Type = [IntType] int
# 183| ValueCategory = lvalue
# 183| getLValue(): [ArrayExpr] access to array
# 183| Type = [IntType] int
# 183| ValueCategory = lvalue
# 183| getArrayBase(): [VariableAccess] a
# 183| Type = [ArrayType] int[10]
# 183| ValueCategory = lvalue
# 183| getArrayOffset(): [VariableAccess] i
# 183| Type = [IntType] int
# 183| ValueCategory = prvalue(load)
# 183| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 183| Type = [IntPointerType] int *
# 183| ValueCategory = prvalue
# 183| getRValue(): [VariableAccess] x
# 183| Type = [IntType] int
# 183| ValueCategory = prvalue(load)
# 184| getStmt(9): [ExprStmt] ExprStmt
# 184| getExpr(): [AssignExpr] ... = ...
# 184| Type = [IntType] int
# 184| ValueCategory = lvalue
# 184| getLValue(): [ArrayExpr] access to array
# 184| Type = [IntType] int
# 184| ValueCategory = lvalue
# 184| getArrayBase(): [VariableAccess] a
# 184| Type = [ArrayType] int[10]
# 184| ValueCategory = lvalue
# 184| getArrayOffset(): [VariableAccess] i
# 184| Type = [IntType] int
# 184| ValueCategory = prvalue(load)
# 184| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 184| Type = [IntPointerType] int *
# 184| ValueCategory = prvalue
# 184| getRValue(): [VariableAccess] x
# 184| Type = [IntType] int
# 184| ValueCategory = prvalue(load)
# 185| getStmt(10): [ReturnStmt] return ...
# 187| [TopLevelFunction] void StringLiteral(int)
# 187| <params>:
# 187| getParameter(0): [Parameter] i
# 187| Type = [IntType] int
# 187| getEntryPoint(): [BlockStmt] { ... }
# 188| getStmt(0): [DeclStmt] declaration
# 188| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
# 188| Type = [PlainCharType] char
# 188| getVariable().getInitializer(): [Initializer] initializer for c
# 188| getExpr(): [ArrayExpr] access to array
# 188| Type = [PlainCharType] char
# 188| ValueCategory = prvalue(load)
# 188| getArrayBase(): Foo
# 188| Type = [ArrayType] const char[4]
# 188| Value = [StringLiteral] "Foo"
# 188| ValueCategory = lvalue
# 188| getArrayOffset(): [VariableAccess] i
# 188| Type = [IntType] int
# 188| ValueCategory = prvalue(load)
# 188| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 188| Type = [PointerType] const char *
# 188| ValueCategory = prvalue
# 189| getStmt(1): [DeclStmt] declaration
# 189| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pwc
# 189| Type = [PointerType] wchar_t *
# 189| getVariable().getInitializer(): [Initializer] initializer for pwc
# 189| getExpr(): Bar
# 189| Type = [ArrayType] const wchar_t[4]
# 189| Value = [StringLiteral] "Bar"
# 189| ValueCategory = lvalue
# 189| getExpr().getFullyConverted(): [CStyleCast] (wchar_t *)...
# 189| Conversion = [PointerConversion] pointer conversion
# 189| Type = [PointerType] wchar_t *
# 189| ValueCategory = prvalue
# 189| getExpr(): [ArrayToPointerConversion] array to pointer conversion
# 189| Type = [PointerType] const wchar_t *
# 189| ValueCategory = prvalue
# 190| getStmt(2): [DeclStmt] declaration
# 190| getDeclarationEntry(0): [VariableDeclarationEntry] definition of wc
# 190| Type = [Wchar_t,WideCharType] wchar_t
# 190| getVariable().getInitializer(): [Initializer] initializer for wc
# 190| getExpr(): [ArrayExpr] access to array
# 190| Type = [Wchar_t,WideCharType] wchar_t
# 190| ValueCategory = prvalue(load)
# 190| getArrayBase(): [VariableAccess] pwc
# 190| Type = [PointerType] wchar_t *
# 190| ValueCategory = prvalue(load)
# 190| getArrayOffset(): [VariableAccess] i
# 190| Type = [IntType] int
# 190| ValueCategory = prvalue(load)
# 191| getStmt(3): [ReturnStmt] return ...
# 193| [TopLevelFunction] void PointerCompare(int*, int*)
# 193| <params>:
# 193| getParameter(0): [Parameter] p
# 193| Type = [IntPointerType] int *
# 193| getParameter(1): [Parameter] q
# 193| Type = [IntPointerType] int *
# 193| getEntryPoint(): [BlockStmt] { ... }
# 194| getStmt(0): [DeclStmt] declaration
# 194| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 194| Type = [BoolType] bool
# 196| getStmt(1): [ExprStmt] ExprStmt
# 196| getExpr(): [AssignExpr] ... = ...
# 196| Type = [BoolType] bool
# 196| ValueCategory = lvalue
# 196| getLValue(): [VariableAccess] b
# 196| Type = [BoolType] bool
# 196| ValueCategory = lvalue
# 196| getRValue(): [EQExpr] ... == ...
# 196| Type = [BoolType] bool
# 196| ValueCategory = prvalue
# 196| getLeftOperand(): [VariableAccess] p
# 196| Type = [IntPointerType] int *
# 196| ValueCategory = prvalue(load)
# 196| getRightOperand(): [VariableAccess] q
# 196| Type = [IntPointerType] int *
# 196| ValueCategory = prvalue(load)
# 197| getStmt(2): [ExprStmt] ExprStmt
# 197| getExpr(): [AssignExpr] ... = ...
# 197| Type = [BoolType] bool
# 197| ValueCategory = lvalue
# 197| getLValue(): [VariableAccess] b
# 197| Type = [BoolType] bool
# 197| ValueCategory = lvalue
# 197| getRValue(): [NEExpr] ... != ...
# 197| Type = [BoolType] bool
# 197| ValueCategory = prvalue
# 197| getLeftOperand(): [VariableAccess] p
# 197| Type = [IntPointerType] int *
# 197| ValueCategory = prvalue(load)
# 197| getRightOperand(): [VariableAccess] q
# 197| Type = [IntPointerType] int *
# 197| ValueCategory = prvalue(load)
# 198| getStmt(3): [ExprStmt] ExprStmt
# 198| getExpr(): [AssignExpr] ... = ...
# 198| Type = [BoolType] bool
# 198| ValueCategory = lvalue
# 198| getLValue(): [VariableAccess] b
# 198| Type = [BoolType] bool
# 198| ValueCategory = lvalue
# 198| getRValue(): [LTExpr] ... < ...
# 198| Type = [BoolType] bool
# 198| ValueCategory = prvalue
# 198| getLesserOperand(): [VariableAccess] p
# 198| Type = [IntPointerType] int *
# 198| ValueCategory = prvalue(load)
# 198| getGreaterOperand(): [VariableAccess] q
# 198| Type = [IntPointerType] int *
# 198| ValueCategory = prvalue(load)
# 199| getStmt(4): [ExprStmt] ExprStmt
# 199| getExpr(): [AssignExpr] ... = ...
# 199| Type = [BoolType] bool
# 199| ValueCategory = lvalue
# 199| getLValue(): [VariableAccess] b
# 199| Type = [BoolType] bool
# 199| ValueCategory = lvalue
# 199| getRValue(): [GTExpr] ... > ...
# 199| Type = [BoolType] bool
# 199| ValueCategory = prvalue
# 199| getGreaterOperand(): [VariableAccess] p
# 199| Type = [IntPointerType] int *
# 199| ValueCategory = prvalue(load)
# 199| getLesserOperand(): [VariableAccess] q
# 199| Type = [IntPointerType] int *
# 199| ValueCategory = prvalue(load)
# 200| getStmt(5): [ExprStmt] ExprStmt
# 200| getExpr(): [AssignExpr] ... = ...
# 200| Type = [BoolType] bool
# 200| ValueCategory = lvalue
# 200| getLValue(): [VariableAccess] b
# 200| Type = [BoolType] bool
# 200| ValueCategory = lvalue
# 200| getRValue(): [LEExpr] ... <= ...
# 200| Type = [BoolType] bool
# 200| ValueCategory = prvalue
# 200| getLesserOperand(): [VariableAccess] p
# 200| Type = [IntPointerType] int *
# 200| ValueCategory = prvalue(load)
# 200| getGreaterOperand(): [VariableAccess] q
# 200| Type = [IntPointerType] int *
# 200| ValueCategory = prvalue(load)
# 201| getStmt(6): [ExprStmt] ExprStmt
# 201| getExpr(): [AssignExpr] ... = ...
# 201| Type = [BoolType] bool
# 201| ValueCategory = lvalue
# 201| getLValue(): [VariableAccess] b
# 201| Type = [BoolType] bool
# 201| ValueCategory = lvalue
# 201| getRValue(): [GEExpr] ... >= ...
# 201| Type = [BoolType] bool
# 201| ValueCategory = prvalue
# 201| getGreaterOperand(): [VariableAccess] p
# 201| Type = [IntPointerType] int *
# 201| ValueCategory = prvalue(load)
# 201| getLesserOperand(): [VariableAccess] q
# 201| Type = [IntPointerType] int *
# 201| ValueCategory = prvalue(load)
# 202| getStmt(7): [ReturnStmt] return ...
# 204| [TopLevelFunction] void PointerCrement(int*)
# 204| <params>:
# 204| getParameter(0): [Parameter] p
# 204| Type = [IntPointerType] int *
# 204| getEntryPoint(): [BlockStmt] { ... }
# 205| getStmt(0): [DeclStmt] declaration
# 205| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q
# 205| Type = [IntPointerType] int *
# 207| getStmt(1): [ExprStmt] ExprStmt
# 207| getExpr(): [AssignExpr] ... = ...
# 207| Type = [IntPointerType] int *
# 207| ValueCategory = lvalue
# 207| getLValue(): [VariableAccess] q
# 207| Type = [IntPointerType] int *
# 207| ValueCategory = lvalue
# 207| getRValue(): [PrefixIncrExpr] ++ ...
# 207| Type = [IntPointerType] int *
# 207| ValueCategory = prvalue
# 207| getOperand(): [VariableAccess] p
# 207| Type = [IntPointerType] int *
# 207| ValueCategory = lvalue
# 208| getStmt(2): [ExprStmt] ExprStmt
# 208| getExpr(): [AssignExpr] ... = ...
# 208| Type = [IntPointerType] int *
# 208| ValueCategory = lvalue
# 208| getLValue(): [VariableAccess] q
# 208| Type = [IntPointerType] int *
# 208| ValueCategory = lvalue
# 208| getRValue(): [PrefixDecrExpr] -- ...
# 208| Type = [IntPointerType] int *
# 208| ValueCategory = prvalue
# 208| getOperand(): [VariableAccess] p
# 208| Type = [IntPointerType] int *
# 208| ValueCategory = lvalue
# 209| getStmt(3): [ExprStmt] ExprStmt
# 209| getExpr(): [AssignExpr] ... = ...
# 209| Type = [IntPointerType] int *
# 209| ValueCategory = lvalue
# 209| getLValue(): [VariableAccess] q
# 209| Type = [IntPointerType] int *
# 209| ValueCategory = lvalue
# 209| getRValue(): [PostfixIncrExpr] ... ++
# 209| Type = [IntPointerType] int *
# 209| ValueCategory = prvalue
# 209| getOperand(): [VariableAccess] p
# 209| Type = [IntPointerType] int *
# 209| ValueCategory = lvalue
# 210| getStmt(4): [ExprStmt] ExprStmt
# 210| getExpr(): [AssignExpr] ... = ...
# 210| Type = [IntPointerType] int *
# 210| ValueCategory = lvalue
# 210| getLValue(): [VariableAccess] q
# 210| Type = [IntPointerType] int *
# 210| ValueCategory = lvalue
# 210| getRValue(): [PostfixDecrExpr] ... --
# 210| Type = [IntPointerType] int *
# 210| ValueCategory = prvalue
# 210| getOperand(): [VariableAccess] p
# 210| Type = [IntPointerType] int *
# 210| ValueCategory = lvalue
# 211| getStmt(5): [ReturnStmt] return ...
# 213| [TopLevelFunction] void CompoundAssignment()
# 213| <params>:
# 213| getEntryPoint(): [BlockStmt] { ... }
# 215| getStmt(0): [DeclStmt] declaration
# 215| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 215| Type = [IntType] int
# 215| getVariable().getInitializer(): [Initializer] initializer for x
# 215| getExpr(): [Literal] 5
# 215| Type = [IntType] int
# 215| Value = [Literal] 5
# 215| ValueCategory = prvalue
# 216| getStmt(1): [ExprStmt] ExprStmt
# 216| getExpr(): [AssignAddExpr] ... += ...
# 216| Type = [IntType] int
# 216| ValueCategory = lvalue
# 216| getLValue(): [VariableAccess] x
# 216| Type = [IntType] int
# 216| ValueCategory = lvalue
# 216| getRValue(): [Literal] 7
# 216| Type = [IntType] int
# 216| Value = [Literal] 7
# 216| ValueCategory = prvalue
# 219| getStmt(2): [DeclStmt] declaration
# 219| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 219| Type = [ShortType] short
# 219| getVariable().getInitializer(): [Initializer] initializer for y
# 219| getExpr(): [Literal] 5
# 219| Type = [IntType] int
# 219| Value = [Literal] 5
# 219| ValueCategory = prvalue
# 219| getExpr().getFullyConverted(): [CStyleCast] (short)...
# 219| Conversion = [IntegralConversion] integral conversion
# 219| Type = [ShortType] short
# 219| Value = [CStyleCast] 5
# 219| ValueCategory = prvalue
# 220| getStmt(3): [ExprStmt] ExprStmt
# 220| getExpr(): [AssignAddExpr] ... += ...
# 220| Type = [ShortType] short
# 220| ValueCategory = lvalue
# 220| getLValue(): [VariableAccess] y
# 220| Type = [ShortType] short
# 220| ValueCategory = lvalue
# 220| getRValue(): [VariableAccess] x
# 220| Type = [IntType] int
# 220| ValueCategory = prvalue(load)
# 223| getStmt(4): [ExprStmt] ExprStmt
# 223| getExpr(): [AssignLShiftExpr] ... <<= ...
# 223| Type = [ShortType] short
# 223| ValueCategory = lvalue
# 223| getLValue(): [VariableAccess] y
# 223| Type = [ShortType] short
# 223| ValueCategory = lvalue
# 223| getRValue(): [Literal] 1
# 223| Type = [IntType] int
# 223| Value = [Literal] 1
# 223| ValueCategory = prvalue
# 226| getStmt(5): [DeclStmt] declaration
# 226| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 226| Type = [LongType] long
# 226| getVariable().getInitializer(): [Initializer] initializer for z
# 226| getExpr(): [Literal] 7
# 226| Type = [IntType] int
# 226| Value = [Literal] 7
# 226| ValueCategory = prvalue
# 226| getExpr().getFullyConverted(): [CStyleCast] (long)...
# 226| Conversion = [IntegralConversion] integral conversion
# 226| Type = [LongType] long
# 226| Value = [CStyleCast] 7
# 226| ValueCategory = prvalue
# 227| getStmt(6): [ExprStmt] ExprStmt
# 227| getExpr(): [AssignAddExpr] ... += ...
# 227| Type = [LongType] long
# 227| ValueCategory = lvalue
# 227| getLValue(): [VariableAccess] z
# 227| Type = [LongType] long
# 227| ValueCategory = lvalue
# 227| getRValue(): [Literal] 2.0
# 227| Type = [FloatType] float
# 227| Value = [Literal] 2.0
# 227| ValueCategory = prvalue
# 228| getStmt(7): [ReturnStmt] return ...
# 230| [TopLevelFunction] void UninitializedVariables()
# 230| <params>:
# 230| getEntryPoint(): [BlockStmt] { ... }
# 231| getStmt(0): [DeclStmt] declaration
# 231| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 231| Type = [IntType] int
# 232| getStmt(1): [DeclStmt] declaration
# 232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 232| Type = [IntType] int
# 232| getVariable().getInitializer(): [Initializer] initializer for y
# 232| getExpr(): [VariableAccess] x
# 232| Type = [IntType] int
# 232| ValueCategory = prvalue(load)
# 233| getStmt(2): [ReturnStmt] return ...
# 235| [TopLevelFunction] int Parameters(int, int)
# 235| <params>:
# 235| getParameter(0): [Parameter] x
# 235| Type = [IntType] int
# 235| getParameter(1): [Parameter] y
# 235| Type = [IntType] int
# 235| getEntryPoint(): [BlockStmt] { ... }
# 236| getStmt(0): [ReturnStmt] return ...
# 236| getExpr(): [RemExpr] ... % ...
# 236| Type = [IntType] int
# 236| ValueCategory = prvalue
# 236| getLeftOperand(): [VariableAccess] x
# 236| Type = [IntType] int
# 236| ValueCategory = prvalue(load)
# 236| getRightOperand(): [VariableAccess] y
# 236| Type = [IntType] int
# 236| ValueCategory = prvalue(load)
# 239| [TopLevelFunction] void IfStatements(bool, int, int)
# 239| <params>:
# 239| getParameter(0): [Parameter] b
# 239| Type = [BoolType] bool
# 239| getParameter(1): [Parameter] x
# 239| Type = [IntType] int
# 239| getParameter(2): [Parameter] y
# 239| Type = [IntType] int
# 239| getEntryPoint(): [BlockStmt] { ... }
# 240| getStmt(0): [IfStmt] if (...) ...
# 240| getCondition(): [VariableAccess] b
# 240| Type = [BoolType] bool
# 240| ValueCategory = prvalue(load)
# 240| getThen(): [BlockStmt] { ... }
# 243| getStmt(1): [IfStmt] if (...) ...
# 243| getCondition(): [VariableAccess] b
# 243| Type = [BoolType] bool
# 243| ValueCategory = prvalue(load)
# 243| getThen(): [BlockStmt] { ... }
# 244| getStmt(0): [ExprStmt] ExprStmt
# 244| getExpr(): [AssignExpr] ... = ...
# 244| Type = [IntType] int
# 244| ValueCategory = lvalue
# 244| getLValue(): [VariableAccess] x
# 244| Type = [IntType] int
# 244| ValueCategory = lvalue
# 244| getRValue(): [VariableAccess] y
# 244| Type = [IntType] int
# 244| ValueCategory = prvalue(load)
# 247| getStmt(2): [IfStmt] if (...) ...
# 247| getCondition(): [LTExpr] ... < ...
# 247| Type = [BoolType] bool
# 247| ValueCategory = prvalue
# 247| getLesserOperand(): [VariableAccess] x
# 247| Type = [IntType] int
# 247| ValueCategory = prvalue(load)
# 247| getGreaterOperand(): [Literal] 7
# 247| Type = [IntType] int
# 247| Value = [Literal] 7
# 247| ValueCategory = prvalue
# 248| getThen(): [ExprStmt] ExprStmt
# 248| getExpr(): [AssignExpr] ... = ...
# 248| Type = [IntType] int
# 248| ValueCategory = lvalue
# 248| getLValue(): [VariableAccess] x
# 248| Type = [IntType] int
# 248| ValueCategory = lvalue
# 248| getRValue(): [Literal] 2
# 248| Type = [IntType] int
# 248| Value = [Literal] 2
# 248| ValueCategory = prvalue
# 250| getElse(): [ExprStmt] ExprStmt
# 250| getExpr(): [AssignExpr] ... = ...
# 250| Type = [IntType] int
# 250| ValueCategory = lvalue
# 250| getLValue(): [VariableAccess] x
# 250| Type = [IntType] int
# 250| ValueCategory = lvalue
# 250| getRValue(): [Literal] 7
# 250| Type = [IntType] int
# 250| Value = [Literal] 7
# 250| ValueCategory = prvalue
# 251| getStmt(3): [ReturnStmt] return ...
# 253| [TopLevelFunction] void WhileStatements(int)
# 253| <params>:
# 253| getParameter(0): [Parameter] n
# 253| Type = [IntType] int
# 253| getEntryPoint(): [BlockStmt] { ... }
# 254| getStmt(0): [WhileStmt] while (...) ...
# 254| getCondition(): [GTExpr] ... > ...
# 254| Type = [BoolType] bool
# 254| ValueCategory = prvalue
# 254| getGreaterOperand(): [VariableAccess] n
# 254| Type = [IntType] int
# 254| ValueCategory = prvalue(load)
# 254| getLesserOperand(): [Literal] 0
# 254| Type = [IntType] int
# 254| Value = [Literal] 0
# 254| ValueCategory = prvalue
# 254| getStmt(): [BlockStmt] { ... }
# 255| getStmt(0): [ExprStmt] ExprStmt
# 255| getExpr(): [AssignSubExpr] ... -= ...
# 255| Type = [IntType] int
# 255| ValueCategory = lvalue
# 255| getLValue(): [VariableAccess] n
# 255| Type = [IntType] int
# 255| ValueCategory = lvalue
# 255| getRValue(): [Literal] 1
# 255| Type = [IntType] int
# 255| Value = [Literal] 1
# 255| ValueCategory = prvalue
# 257| getStmt(1): [ReturnStmt] return ...
# 259| [TopLevelFunction] void DoStatements(int)
# 259| <params>:
# 259| getParameter(0): [Parameter] n
# 259| Type = [IntType] int
# 259| getEntryPoint(): [BlockStmt] { ... }
# 260| getStmt(0): [DoStmt] do (...) ...
# 262| getCondition(): [GTExpr] ... > ...
# 262| Type = [BoolType] bool
# 262| ValueCategory = prvalue
# 262| getGreaterOperand(): [VariableAccess] n
# 262| Type = [IntType] int
# 262| ValueCategory = prvalue(load)
# 262| getLesserOperand(): [Literal] 0
# 262| Type = [IntType] int
# 262| Value = [Literal] 0
# 262| ValueCategory = prvalue
# 260| getStmt(): [BlockStmt] { ... }
# 261| getStmt(0): [ExprStmt] ExprStmt
# 261| getExpr(): [AssignSubExpr] ... -= ...
# 261| Type = [IntType] int
# 261| ValueCategory = lvalue
# 261| getLValue(): [VariableAccess] n
# 261| Type = [IntType] int
# 261| ValueCategory = lvalue
# 261| getRValue(): [Literal] 1
# 261| Type = [IntType] int
# 261| Value = [Literal] 1
# 261| ValueCategory = prvalue
# 263| getStmt(1): [ReturnStmt] return ...
# 265| [TopLevelFunction] void For_Empty()
# 265| <params>:
# 265| getEntryPoint(): [BlockStmt] { ... }
# 266| getStmt(0): [DeclStmt] declaration
# 266| getDeclarationEntry(0): [VariableDeclarationEntry] definition of j
# 266| Type = [IntType] int
# 267| getStmt(1): [ForStmt] for(...;...;...) ...
# 267| getStmt(): [BlockStmt] { ... }
# 268| getStmt(0): [EmptyStmt] ;
# 272| [TopLevelFunction] void For_Init()
# 272| <params>:
# 272| getEntryPoint(): [BlockStmt] { ... }
# 273| getStmt(0): [ForStmt] for(...;...;...) ...
# 273| getInitialization(): [DeclStmt] declaration
# 273| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 273| Type = [IntType] int
# 273| getVariable().getInitializer(): [Initializer] initializer for i
# 273| getExpr(): [Literal] 0
# 273| Type = [IntType] int
# 273| Value = [Literal] 0
# 273| ValueCategory = prvalue
# 273| getStmt(): [BlockStmt] { ... }
# 274| getStmt(0): [EmptyStmt] ;
# 278| [TopLevelFunction] void For_Condition()
# 278| <params>:
# 278| getEntryPoint(): [BlockStmt] { ... }
# 279| getStmt(0): [DeclStmt] declaration
# 279| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 279| Type = [IntType] int
# 279| getVariable().getInitializer(): [Initializer] initializer for i
# 279| getExpr(): [Literal] 0
# 279| Type = [IntType] int
# 279| Value = [Literal] 0
# 279| ValueCategory = prvalue
# 280| getStmt(1): [ForStmt] for(...;...;...) ...
# 280| getCondition(): [LTExpr] ... < ...
# 280| Type = [BoolType] bool
# 280| ValueCategory = prvalue
# 280| getLesserOperand(): [VariableAccess] i
# 280| Type = [IntType] int
# 280| ValueCategory = prvalue(load)
# 280| getGreaterOperand(): [Literal] 10
# 280| Type = [IntType] int
# 280| Value = [Literal] 10
# 280| ValueCategory = prvalue
# 280| getStmt(): [BlockStmt] { ... }
# 281| getStmt(0): [EmptyStmt] ;
# 283| getStmt(2): [ReturnStmt] return ...
# 285| [TopLevelFunction] void For_Update()
# 285| <params>:
# 285| getEntryPoint(): [BlockStmt] { ... }
# 286| getStmt(0): [DeclStmt] declaration
# 286| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 286| Type = [IntType] int
# 286| getVariable().getInitializer(): [Initializer] initializer for i
# 286| getExpr(): [Literal] 0
# 286| Type = [IntType] int
# 286| Value = [Literal] 0
# 286| ValueCategory = prvalue
# 287| getStmt(1): [ForStmt] for(...;...;...) ...
# 287| getUpdate(): [AssignAddExpr] ... += ...
# 287| Type = [IntType] int
# 287| ValueCategory = lvalue
# 287| getLValue(): [VariableAccess] i
# 287| Type = [IntType] int
# 287| ValueCategory = lvalue
# 287| getRValue(): [Literal] 1
# 287| Type = [IntType] int
# 287| Value = [Literal] 1
# 287| ValueCategory = prvalue
# 287| getStmt(): [BlockStmt] { ... }
# 288| getStmt(0): [EmptyStmt] ;
# 292| [TopLevelFunction] void For_InitCondition()
# 292| <params>:
# 292| getEntryPoint(): [BlockStmt] { ... }
# 293| getStmt(0): [ForStmt] for(...;...;...) ...
# 293| getInitialization(): [DeclStmt] declaration
# 293| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 293| Type = [IntType] int
# 293| getVariable().getInitializer(): [Initializer] initializer for i
# 293| getExpr(): [Literal] 0
# 293| Type = [IntType] int
# 293| Value = [Literal] 0
# 293| ValueCategory = prvalue
# 293| getCondition(): [LTExpr] ... < ...
# 293| Type = [BoolType] bool
# 293| ValueCategory = prvalue
# 293| getLesserOperand(): [VariableAccess] i
# 293| Type = [IntType] int
# 293| ValueCategory = prvalue(load)
# 293| getGreaterOperand(): [Literal] 10
# 293| Type = [IntType] int
# 293| Value = [Literal] 10
# 293| ValueCategory = prvalue
# 293| getStmt(): [BlockStmt] { ... }
# 294| getStmt(0): [EmptyStmt] ;
# 296| getStmt(1): [ReturnStmt] return ...
# 298| [TopLevelFunction] void For_InitUpdate()
# 298| <params>:
# 298| getEntryPoint(): [BlockStmt] { ... }
# 299| getStmt(0): [ForStmt] for(...;...;...) ...
# 299| getInitialization(): [DeclStmt] declaration
# 299| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 299| Type = [IntType] int
# 299| getVariable().getInitializer(): [Initializer] initializer for i
# 299| getExpr(): [Literal] 0
# 299| Type = [IntType] int
# 299| Value = [Literal] 0
# 299| ValueCategory = prvalue
# 299| getUpdate(): [AssignAddExpr] ... += ...
# 299| Type = [IntType] int
# 299| ValueCategory = lvalue
# 299| getLValue(): [VariableAccess] i
# 299| Type = [IntType] int
# 299| ValueCategory = lvalue
# 299| getRValue(): [Literal] 1
# 299| Type = [IntType] int
# 299| Value = [Literal] 1
# 299| ValueCategory = prvalue
# 299| getStmt(): [BlockStmt] { ... }
# 300| getStmt(0): [EmptyStmt] ;
# 304| [TopLevelFunction] void For_ConditionUpdate()
# 304| <params>:
# 304| getEntryPoint(): [BlockStmt] { ... }
# 305| getStmt(0): [DeclStmt] declaration
# 305| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 305| Type = [IntType] int
# 305| getVariable().getInitializer(): [Initializer] initializer for i
# 305| getExpr(): [Literal] 0
# 305| Type = [IntType] int
# 305| Value = [Literal] 0
# 305| ValueCategory = prvalue
# 306| getStmt(1): [ForStmt] for(...;...;...) ...
# 306| getCondition(): [LTExpr] ... < ...
# 306| Type = [BoolType] bool
# 306| ValueCategory = prvalue
# 306| getLesserOperand(): [VariableAccess] i
# 306| Type = [IntType] int
# 306| ValueCategory = prvalue(load)
# 306| getGreaterOperand(): [Literal] 10
# 306| Type = [IntType] int
# 306| Value = [Literal] 10
# 306| ValueCategory = prvalue
# 306| getUpdate(): [AssignAddExpr] ... += ...
# 306| Type = [IntType] int
# 306| ValueCategory = lvalue
# 306| getLValue(): [VariableAccess] i
# 306| Type = [IntType] int
# 306| ValueCategory = lvalue
# 306| getRValue(): [Literal] 1
# 306| Type = [IntType] int
# 306| Value = [Literal] 1
# 306| ValueCategory = prvalue
# 306| getStmt(): [BlockStmt] { ... }
# 307| getStmt(0): [EmptyStmt] ;
# 309| getStmt(2): [ReturnStmt] return ...
# 311| [TopLevelFunction] void For_InitConditionUpdate()
# 311| <params>:
# 311| getEntryPoint(): [BlockStmt] { ... }
# 312| getStmt(0): [ForStmt] for(...;...;...) ...
# 312| getInitialization(): [DeclStmt] declaration
# 312| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 312| Type = [IntType] int
# 312| getVariable().getInitializer(): [Initializer] initializer for i
# 312| getExpr(): [Literal] 0
# 312| Type = [IntType] int
# 312| Value = [Literal] 0
# 312| ValueCategory = prvalue
# 312| getCondition(): [LTExpr] ... < ...
# 312| Type = [BoolType] bool
# 312| ValueCategory = prvalue
# 312| getLesserOperand(): [VariableAccess] i
# 312| Type = [IntType] int
# 312| ValueCategory = prvalue(load)
# 312| getGreaterOperand(): [Literal] 10
# 312| Type = [IntType] int
# 312| Value = [Literal] 10
# 312| ValueCategory = prvalue
# 312| getUpdate(): [AssignAddExpr] ... += ...
# 312| Type = [IntType] int
# 312| ValueCategory = lvalue
# 312| getLValue(): [VariableAccess] i
# 312| Type = [IntType] int
# 312| ValueCategory = lvalue
# 312| getRValue(): [Literal] 1
# 312| Type = [IntType] int
# 312| Value = [Literal] 1
# 312| ValueCategory = prvalue
# 312| getStmt(): [BlockStmt] { ... }
# 313| getStmt(0): [EmptyStmt] ;
# 315| getStmt(1): [ReturnStmt] return ...
# 317| [TopLevelFunction] void For_Break()
# 317| <params>:
# 317| getEntryPoint(): [BlockStmt] { ... }
# 318| getStmt(0): [ForStmt] for(...;...;...) ...
# 318| getInitialization(): [DeclStmt] declaration
# 318| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 318| Type = [IntType] int
# 318| getVariable().getInitializer(): [Initializer] initializer for i
# 318| getExpr(): [Literal] 0
# 318| Type = [IntType] int
# 318| Value = [Literal] 0
# 318| ValueCategory = prvalue
# 318| getCondition(): [LTExpr] ... < ...
# 318| Type = [BoolType] bool
# 318| ValueCategory = prvalue
# 318| getLesserOperand(): [VariableAccess] i
# 318| Type = [IntType] int
# 318| ValueCategory = prvalue(load)
# 318| getGreaterOperand(): [Literal] 10
# 318| Type = [IntType] int
# 318| Value = [Literal] 10
# 318| ValueCategory = prvalue
# 318| getUpdate(): [AssignAddExpr] ... += ...
# 318| Type = [IntType] int
# 318| ValueCategory = lvalue
# 318| getLValue(): [VariableAccess] i
# 318| Type = [IntType] int
# 318| ValueCategory = lvalue
# 318| getRValue(): [Literal] 1
# 318| Type = [IntType] int
# 318| Value = [Literal] 1
# 318| ValueCategory = prvalue
# 318| getStmt(): [BlockStmt] { ... }
# 319| getStmt(0): [IfStmt] if (...) ...
# 319| getCondition(): [EQExpr] ... == ...
# 319| Type = [BoolType] bool
# 319| ValueCategory = prvalue
# 319| getLeftOperand(): [VariableAccess] i
# 319| Type = [IntType] int
# 319| ValueCategory = prvalue(load)
# 319| getRightOperand(): [Literal] 5
# 319| Type = [IntType] int
# 319| Value = [Literal] 5
# 319| ValueCategory = prvalue
# 319| getThen(): [BlockStmt] { ... }
# 320| getStmt(0): [BreakStmt] break;
# 322| getStmt(1): [LabelStmt] label ...:
# 323| getStmt(2): [ReturnStmt] return ...
# 325| [TopLevelFunction] void For_Continue_Update()
# 325| <params>:
# 325| getEntryPoint(): [BlockStmt] { ... }
# 326| getStmt(0): [ForStmt] for(...;...;...) ...
# 326| getInitialization(): [DeclStmt] declaration
# 326| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 326| Type = [IntType] int
# 326| getVariable().getInitializer(): [Initializer] initializer for i
# 326| getExpr(): [Literal] 0
# 326| Type = [IntType] int
# 326| Value = [Literal] 0
# 326| ValueCategory = prvalue
# 326| getCondition(): [LTExpr] ... < ...
# 326| Type = [BoolType] bool
# 326| ValueCategory = prvalue
# 326| getLesserOperand(): [VariableAccess] i
# 326| Type = [IntType] int
# 326| ValueCategory = prvalue(load)
# 326| getGreaterOperand(): [Literal] 10
# 326| Type = [IntType] int
# 326| Value = [Literal] 10
# 326| ValueCategory = prvalue
# 326| getUpdate(): [AssignAddExpr] ... += ...
# 326| Type = [IntType] int
# 326| ValueCategory = lvalue
# 326| getLValue(): [VariableAccess] i
# 326| Type = [IntType] int
# 326| ValueCategory = lvalue
# 326| getRValue(): [Literal] 1
# 326| Type = [IntType] int
# 326| Value = [Literal] 1
# 326| ValueCategory = prvalue
# 326| getStmt(): [BlockStmt] { ... }
# 327| getStmt(0): [IfStmt] if (...) ...
# 327| getCondition(): [EQExpr] ... == ...
# 327| Type = [BoolType] bool
# 327| ValueCategory = prvalue
# 327| getLeftOperand(): [VariableAccess] i
# 327| Type = [IntType] int
# 327| ValueCategory = prvalue(load)
# 327| getRightOperand(): [Literal] 5
# 327| Type = [IntType] int
# 327| Value = [Literal] 5
# 327| ValueCategory = prvalue
# 327| getThen(): [BlockStmt] { ... }
# 328| getStmt(0): [ContinueStmt] continue;
# 326| getStmt(1): [LabelStmt] label ...:
# 331| getStmt(1): [ReturnStmt] return ...
# 333| [TopLevelFunction] void For_Continue_NoUpdate()
# 333| <params>:
# 333| getEntryPoint(): [BlockStmt] { ... }
# 334| getStmt(0): [ForStmt] for(...;...;...) ...
# 334| getInitialization(): [DeclStmt] declaration
# 334| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 334| Type = [IntType] int
# 334| getVariable().getInitializer(): [Initializer] initializer for i
# 334| getExpr(): [Literal] 0
# 334| Type = [IntType] int
# 334| Value = [Literal] 0
# 334| ValueCategory = prvalue
# 334| getCondition(): [LTExpr] ... < ...
# 334| Type = [BoolType] bool
# 334| ValueCategory = prvalue
# 334| getLesserOperand(): [VariableAccess] i
# 334| Type = [IntType] int
# 334| ValueCategory = prvalue(load)
# 334| getGreaterOperand(): [Literal] 10
# 334| Type = [IntType] int
# 334| Value = [Literal] 10
# 334| ValueCategory = prvalue
# 334| getStmt(): [BlockStmt] { ... }
# 335| getStmt(0): [IfStmt] if (...) ...
# 335| getCondition(): [EQExpr] ... == ...
# 335| Type = [BoolType] bool
# 335| ValueCategory = prvalue
# 335| getLeftOperand(): [VariableAccess] i
# 335| Type = [IntType] int
# 335| ValueCategory = prvalue(load)
# 335| getRightOperand(): [Literal] 5
# 335| Type = [IntType] int
# 335| Value = [Literal] 5
# 335| ValueCategory = prvalue
# 335| getThen(): [BlockStmt] { ... }
# 336| getStmt(0): [ContinueStmt] continue;
# 334| getStmt(1): [LabelStmt] label ...:
# 339| getStmt(1): [ReturnStmt] return ...
# 341| [TopLevelFunction] int Dereference(int*)
# 341| <params>:
# 341| getParameter(0): [Parameter] p
# 341| Type = [IntPointerType] int *
# 341| getEntryPoint(): [BlockStmt] { ... }
# 342| getStmt(0): [ExprStmt] ExprStmt
# 342| getExpr(): [AssignExpr] ... = ...
# 342| Type = [IntType] int
# 342| ValueCategory = lvalue
# 342| getLValue(): [PointerDereferenceExpr] * ...
# 342| Type = [IntType] int
# 342| ValueCategory = lvalue
# 342| getOperand(): [VariableAccess] p
# 342| Type = [IntPointerType] int *
# 342| ValueCategory = prvalue(load)
# 342| getRValue(): [Literal] 1
# 342| Type = [IntType] int
# 342| Value = [Literal] 1
# 342| ValueCategory = prvalue
# 343| getStmt(1): [ReturnStmt] return ...
# 343| getExpr(): [PointerDereferenceExpr] * ...
# 343| Type = [IntType] int
# 343| ValueCategory = prvalue(load)
# 343| getOperand(): [VariableAccess] p
# 343| Type = [IntPointerType] int *
# 343| ValueCategory = prvalue(load)
# 348| [TopLevelFunction] int* AddressOf()
# 348| <params>:
# 348| getEntryPoint(): [BlockStmt] { ... }
# 349| getStmt(0): [ReturnStmt] return ...
# 349| getExpr(): [AddressOfExpr] & ...
# 349| Type = [IntPointerType] int *
# 349| ValueCategory = prvalue
# 349| getOperand(): [VariableAccess] g
# 349| Type = [IntType] int
# 349| ValueCategory = lvalue
# 352| [TopLevelFunction] void Break(int)
# 352| <params>:
# 352| getParameter(0): [Parameter] n
# 352| Type = [IntType] int
# 352| getEntryPoint(): [BlockStmt] { ... }
# 353| getStmt(0): [WhileStmt] while (...) ...
# 353| getCondition(): [GTExpr] ... > ...
# 353| Type = [BoolType] bool
# 353| ValueCategory = prvalue
# 353| getGreaterOperand(): [VariableAccess] n
# 353| Type = [IntType] int
# 353| ValueCategory = prvalue(load)
# 353| getLesserOperand(): [Literal] 0
# 353| Type = [IntType] int
# 353| Value = [Literal] 0
# 353| ValueCategory = prvalue
# 353| getStmt(): [BlockStmt] { ... }
# 354| getStmt(0): [IfStmt] if (...) ...
# 354| getCondition(): [EQExpr] ... == ...
# 354| Type = [BoolType] bool
# 354| ValueCategory = prvalue
# 354| getLeftOperand(): [VariableAccess] n
# 354| Type = [IntType] int
# 354| ValueCategory = prvalue(load)
# 354| getRightOperand(): [Literal] 1
# 354| Type = [IntType] int
# 354| Value = [Literal] 1
# 354| ValueCategory = prvalue
# 355| getThen(): [BreakStmt] break;
# 356| getStmt(1): [ExprStmt] ExprStmt
# 356| getExpr(): [AssignSubExpr] ... -= ...
# 356| Type = [IntType] int
# 356| ValueCategory = lvalue
# 356| getLValue(): [VariableAccess] n
# 356| Type = [IntType] int
# 356| ValueCategory = lvalue
# 356| getRValue(): [Literal] 1
# 356| Type = [IntType] int
# 356| Value = [Literal] 1
# 356| ValueCategory = prvalue
# 357| getStmt(1): [LabelStmt] label ...:
# 358| getStmt(2): [ReturnStmt] return ...
# 360| [TopLevelFunction] void Continue(int)
# 360| <params>:
# 360| getParameter(0): [Parameter] n
# 360| Type = [IntType] int
# 360| getEntryPoint(): [BlockStmt] { ... }
# 361| getStmt(0): [DoStmt] do (...) ...
# 366| getCondition(): [GTExpr] ... > ...
# 366| Type = [BoolType] bool
# 366| ValueCategory = prvalue
# 366| getGreaterOperand(): [VariableAccess] n
# 366| Type = [IntType] int
# 366| ValueCategory = prvalue(load)
# 366| getLesserOperand(): [Literal] 0
# 366| Type = [IntType] int
# 366| Value = [Literal] 0
# 366| ValueCategory = prvalue
# 361| getStmt(): [BlockStmt] { ... }
# 362| getStmt(0): [IfStmt] if (...) ...
# 362| getCondition(): [EQExpr] ... == ...
# 362| Type = [BoolType] bool
# 362| ValueCategory = prvalue
# 362| getLeftOperand(): [VariableAccess] n
# 362| Type = [IntType] int
# 362| ValueCategory = prvalue(load)
# 362| getRightOperand(): [Literal] 1
# 362| Type = [IntType] int
# 362| Value = [Literal] 1
# 362| ValueCategory = prvalue
# 362| getThen(): [BlockStmt] { ... }
# 363| getStmt(0): [ContinueStmt] continue;
# 365| getStmt(1): [ExprStmt] ExprStmt
# 365| getExpr(): [AssignSubExpr] ... -= ...
# 365| Type = [IntType] int
# 365| ValueCategory = lvalue
# 365| getLValue(): [VariableAccess] n
# 365| Type = [IntType] int
# 365| ValueCategory = lvalue
# 365| getRValue(): [Literal] 1
# 365| Type = [IntType] int
# 365| Value = [Literal] 1
# 365| ValueCategory = prvalue
# 361| getStmt(2): [LabelStmt] label ...:
# 367| getStmt(1): [ReturnStmt] return ...
# 369| [TopLevelFunction] void VoidFunc()
# 369| <params>:
# 370| [TopLevelFunction] int Add(int, int)
# 370| <params>:
# 370| getParameter(0): [Parameter] x
# 370| Type = [IntType] int
# 370| getParameter(1): [Parameter] y
# 370| Type = [IntType] int
# 372| [TopLevelFunction] void Call()
# 372| <params>:
# 372| getEntryPoint(): [BlockStmt] { ... }
# 373| getStmt(0): [ExprStmt] ExprStmt
# 373| getExpr(): [FunctionCall] call to VoidFunc
# 373| Type = [VoidType] void
# 373| ValueCategory = prvalue
# 374| getStmt(1): [ReturnStmt] return ...
# 376| [TopLevelFunction] int CallAdd(int, int)
# 376| <params>:
# 376| getParameter(0): [Parameter] x
# 376| Type = [IntType] int
# 376| getParameter(1): [Parameter] y
# 376| Type = [IntType] int
# 376| getEntryPoint(): [BlockStmt] { ... }
# 377| getStmt(0): [ReturnStmt] return ...
# 377| getExpr(): [FunctionCall] call to Add
# 377| Type = [IntType] int
# 377| ValueCategory = prvalue
# 377| getArgument(0): [VariableAccess] x
# 377| Type = [IntType] int
# 377| ValueCategory = prvalue(load)
# 377| getArgument(1): [VariableAccess] y
# 377| Type = [IntType] int
# 377| ValueCategory = prvalue(load)
# 380| [TopLevelFunction] int Comma(int, int)
# 380| <params>:
# 380| getParameter(0): [Parameter] x
# 380| Type = [IntType] int
# 380| getParameter(1): [Parameter] y
# 380| Type = [IntType] int
# 380| getEntryPoint(): [BlockStmt] { ... }
# 381| getStmt(0): [ReturnStmt] return ...
# 381| getExpr(): [CommaExpr] ... , ...
# 381| Type = [IntType] int
# 381| ValueCategory = prvalue
# 381| getLeftOperand(): [FunctionCall] call to VoidFunc
# 381| Type = [VoidType] void
# 381| ValueCategory = prvalue
# 381| getRightOperand(): [FunctionCall] call to CallAdd
# 381| Type = [IntType] int
# 381| ValueCategory = prvalue
# 381| getArgument(0): [VariableAccess] x
# 381| Type = [IntType] int
# 381| ValueCategory = prvalue(load)
# 381| getArgument(1): [VariableAccess] y
# 381| Type = [IntType] int
# 381| ValueCategory = prvalue(load)
# 384| [TopLevelFunction] void Switch(int)
# 384| <params>:
# 384| getParameter(0): [Parameter] x
# 384| Type = [IntType] int
# 384| getEntryPoint(): [BlockStmt] { ... }
# 385| getStmt(0): [DeclStmt] declaration
# 385| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 385| Type = [IntType] int
# 386| getStmt(1): [SwitchStmt] switch (...) ...
# 386| getExpr(): [VariableAccess] x
# 386| Type = [IntType] int
# 386| ValueCategory = prvalue(load)
# 386| getStmt(): [BlockStmt] { ... }
# 387| getStmt(0): [ExprStmt] ExprStmt
# 387| getExpr(): [AssignExpr] ... = ...
# 387| Type = [IntType] int
# 387| ValueCategory = lvalue
# 387| getLValue(): [VariableAccess] y
# 387| Type = [IntType] int
# 387| ValueCategory = lvalue
# 387| getRValue(): [Literal] 1234
# 387| Type = [IntType] int
# 387| Value = [Literal] 1234
# 387| ValueCategory = prvalue
# 389| getStmt(1): [SwitchCase] case ...:
# 389| getExpr(): [UnaryMinusExpr] - ...
# 389| Type = [IntType] int
# 389| Value = [UnaryMinusExpr] -1
# 389| ValueCategory = prvalue
# 389| getOperand(): [Literal] 1
# 389| Type = [IntType] int
# 389| Value = [Literal] 1
# 389| ValueCategory = prvalue
# 390| getStmt(2): [ExprStmt] ExprStmt
# 390| getExpr(): [AssignExpr] ... = ...
# 390| Type = [IntType] int
# 390| ValueCategory = lvalue
# 390| getLValue(): [VariableAccess] y
# 390| Type = [IntType] int
# 390| ValueCategory = lvalue
# 390| getRValue(): [UnaryMinusExpr] - ...
# 390| Type = [IntType] int
# 390| Value = [UnaryMinusExpr] -1
# 390| ValueCategory = prvalue
# 390| getOperand(): [Literal] 1
# 390| Type = [IntType] int
# 390| Value = [Literal] 1
# 390| ValueCategory = prvalue
# 391| getStmt(3): [BreakStmt] break;
# 393| getStmt(4): [SwitchCase] case ...:
# 393| getExpr(): [Literal] 1
# 393| Type = [IntType] int
# 393| Value = [Literal] 1
# 393| ValueCategory = prvalue
# 394| getStmt(5): [SwitchCase] case ...:
# 394| getExpr(): [Literal] 2
# 394| Type = [IntType] int
# 394| Value = [Literal] 2
# 394| ValueCategory = prvalue
# 395| getStmt(6): [ExprStmt] ExprStmt
# 395| getExpr(): [AssignExpr] ... = ...
# 395| Type = [IntType] int
# 395| ValueCategory = lvalue
# 395| getLValue(): [VariableAccess] y
# 395| Type = [IntType] int
# 395| ValueCategory = lvalue
# 395| getRValue(): [Literal] 1
# 395| Type = [IntType] int
# 395| Value = [Literal] 1
# 395| ValueCategory = prvalue
# 396| getStmt(7): [BreakStmt] break;
# 398| getStmt(8): [SwitchCase] case ...:
# 398| getExpr(): [Literal] 3
# 398| Type = [IntType] int
# 398| Value = [Literal] 3
# 398| ValueCategory = prvalue
# 399| getStmt(9): [ExprStmt] ExprStmt
# 399| getExpr(): [AssignExpr] ... = ...
# 399| Type = [IntType] int
# 399| ValueCategory = lvalue
# 399| getLValue(): [VariableAccess] y
# 399| Type = [IntType] int
# 399| ValueCategory = lvalue
# 399| getRValue(): [Literal] 3
# 399| Type = [IntType] int
# 399| Value = [Literal] 3
# 399| ValueCategory = prvalue
# 400| getStmt(10): [SwitchCase] case ...:
# 400| getExpr(): [Literal] 4
# 400| Type = [IntType] int
# 400| Value = [Literal] 4
# 400| ValueCategory = prvalue
# 401| getStmt(11): [ExprStmt] ExprStmt
# 401| getExpr(): [AssignExpr] ... = ...
# 401| Type = [IntType] int
# 401| ValueCategory = lvalue
# 401| getLValue(): [VariableAccess] y
# 401| Type = [IntType] int
# 401| ValueCategory = lvalue
# 401| getRValue(): [Literal] 4
# 401| Type = [IntType] int
# 401| Value = [Literal] 4
# 401| ValueCategory = prvalue
# 402| getStmt(12): [BreakStmt] break;
# 404| getStmt(13): [SwitchCase] default:
# 405| getStmt(14): [ExprStmt] ExprStmt
# 405| getExpr(): [AssignExpr] ... = ...
# 405| Type = [IntType] int
# 405| ValueCategory = lvalue
# 405| getLValue(): [VariableAccess] y
# 405| Type = [IntType] int
# 405| ValueCategory = lvalue
# 405| getRValue(): [Literal] 0
# 405| Type = [IntType] int
# 405| Value = [Literal] 0
# 405| ValueCategory = prvalue
# 406| getStmt(15): [BreakStmt] break;
# 408| getStmt(16): [ExprStmt] ExprStmt
# 408| getExpr(): [AssignExpr] ... = ...
# 408| Type = [IntType] int
# 408| ValueCategory = lvalue
# 408| getLValue(): [VariableAccess] y
# 408| Type = [IntType] int
# 408| ValueCategory = lvalue
# 408| getRValue(): [Literal] 5678
# 408| Type = [IntType] int
# 408| Value = [Literal] 5678
# 408| ValueCategory = prvalue
# 409| getStmt(2): [LabelStmt] label ...:
# 410| getStmt(3): [ReturnStmt] return ...
# 412| [CopyAssignmentOperator] Point& Point::operator=(Point const&)
# 412| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Point &
# 412| [MoveAssignmentOperator] Point& Point::operator=(Point&&)
# 412| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Point &&
# 417| [CopyAssignmentOperator] Rect& Rect::operator=(Rect const&)
# 417| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Rect &
# 417| [MoveAssignmentOperator] Rect& Rect::operator=(Rect&&)
# 417| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Rect &&
# 422| [TopLevelFunction] Point ReturnStruct(Point)
# 422| <params>:
# 422| getParameter(0): [Parameter] pt
# 422| Type = [Struct] Point
# 422| getEntryPoint(): [BlockStmt] { ... }
# 423| getStmt(0): [ReturnStmt] return ...
# 423| getExpr(): [VariableAccess] pt
# 423| Type = [Struct] Point
# 423| ValueCategory = prvalue(load)
# 426| [TopLevelFunction] void FieldAccess()
# 426| <params>:
# 426| getEntryPoint(): [BlockStmt] { ... }
# 427| getStmt(0): [DeclStmt] declaration
# 427| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pt
# 427| Type = [Struct] Point
# 428| getStmt(1): [ExprStmt] ExprStmt
# 428| getExpr(): [AssignExpr] ... = ...
# 428| Type = [IntType] int
# 428| ValueCategory = lvalue
# 428| getLValue(): [ValueFieldAccess] x
# 428| Type = [IntType] int
# 428| ValueCategory = lvalue
# 428| getQualifier(): [VariableAccess] pt
# 428| Type = [Struct] Point
# 428| ValueCategory = lvalue
# 428| getRValue(): [Literal] 5
# 428| Type = [IntType] int
# 428| Value = [Literal] 5
# 428| ValueCategory = prvalue
# 429| getStmt(2): [ExprStmt] ExprStmt
# 429| getExpr(): [AssignExpr] ... = ...
# 429| Type = [IntType] int
# 429| ValueCategory = lvalue
# 429| getLValue(): [ValueFieldAccess] y
# 429| Type = [IntType] int
# 429| ValueCategory = lvalue
# 429| getQualifier(): [VariableAccess] pt
# 429| Type = [Struct] Point
# 429| ValueCategory = lvalue
# 429| getRValue(): [ValueFieldAccess] x
# 429| Type = [IntType] int
# 429| ValueCategory = prvalue(load)
# 429| getQualifier(): [VariableAccess] pt
# 429| Type = [Struct] Point
# 429| ValueCategory = lvalue
# 430| getStmt(3): [DeclStmt] declaration
# 430| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p
# 430| Type = [IntPointerType] int *
# 430| getVariable().getInitializer(): [Initializer] initializer for p
# 430| getExpr(): [AddressOfExpr] & ...
# 430| Type = [IntPointerType] int *
# 430| ValueCategory = prvalue
# 430| getOperand(): [ValueFieldAccess] y
# 430| Type = [IntType] int
# 430| ValueCategory = lvalue
# 430| getQualifier(): [VariableAccess] pt
# 430| Type = [Struct] Point
# 430| ValueCategory = lvalue
# 431| getStmt(4): [ReturnStmt] return ...
# 433| [TopLevelFunction] void LogicalOr(bool, bool)
# 433| <params>:
# 433| getParameter(0): [Parameter] a
# 433| Type = [BoolType] bool
# 433| getParameter(1): [Parameter] b
# 433| Type = [BoolType] bool
# 433| getEntryPoint(): [BlockStmt] { ... }
# 434| getStmt(0): [DeclStmt] declaration
# 434| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 434| Type = [IntType] int
# 435| getStmt(1): [IfStmt] if (...) ...
# 435| getCondition(): [LogicalOrExpr] ... || ...
# 435| Type = [BoolType] bool
# 435| ValueCategory = prvalue
# 435| getLeftOperand(): [VariableAccess] a
# 435| Type = [BoolType] bool
# 435| ValueCategory = prvalue(load)
# 435| getRightOperand(): [VariableAccess] b
# 435| Type = [BoolType] bool
# 435| ValueCategory = prvalue(load)
# 435| getThen(): [BlockStmt] { ... }
# 436| getStmt(0): [ExprStmt] ExprStmt
# 436| getExpr(): [AssignExpr] ... = ...
# 436| Type = [IntType] int
# 436| ValueCategory = lvalue
# 436| getLValue(): [VariableAccess] x
# 436| Type = [IntType] int
# 436| ValueCategory = lvalue
# 436| getRValue(): [Literal] 7
# 436| Type = [IntType] int
# 436| Value = [Literal] 7
# 436| ValueCategory = prvalue
# 439| getStmt(2): [IfStmt] if (...) ...
# 439| getCondition(): [LogicalOrExpr] ... || ...
# 439| Type = [BoolType] bool
# 439| ValueCategory = prvalue
# 439| getLeftOperand(): [VariableAccess] a
# 439| Type = [BoolType] bool
# 439| ValueCategory = prvalue(load)
# 439| getRightOperand(): [VariableAccess] b
# 439| Type = [BoolType] bool
# 439| ValueCategory = prvalue(load)
# 439| getThen(): [BlockStmt] { ... }
# 440| getStmt(0): [ExprStmt] ExprStmt
# 440| getExpr(): [AssignExpr] ... = ...
# 440| Type = [IntType] int
# 440| ValueCategory = lvalue
# 440| getLValue(): [VariableAccess] x
# 440| Type = [IntType] int
# 440| ValueCategory = lvalue
# 440| getRValue(): [Literal] 1
# 440| Type = [IntType] int
# 440| Value = [Literal] 1
# 440| ValueCategory = prvalue
# 442| getElse(): [BlockStmt] { ... }
# 443| getStmt(0): [ExprStmt] ExprStmt
# 443| getExpr(): [AssignExpr] ... = ...
# 443| Type = [IntType] int
# 443| ValueCategory = lvalue
# 443| getLValue(): [VariableAccess] x
# 443| Type = [IntType] int
# 443| ValueCategory = lvalue
# 443| getRValue(): [Literal] 5
# 443| Type = [IntType] int
# 443| Value = [Literal] 5
# 443| ValueCategory = prvalue
# 445| getStmt(3): [ReturnStmt] return ...
# 447| [TopLevelFunction] void LogicalAnd(bool, bool)
# 447| <params>:
# 447| getParameter(0): [Parameter] a
# 447| Type = [BoolType] bool
# 447| getParameter(1): [Parameter] b
# 447| Type = [BoolType] bool
# 447| getEntryPoint(): [BlockStmt] { ... }
# 448| getStmt(0): [DeclStmt] declaration
# 448| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 448| Type = [IntType] int
# 449| getStmt(1): [IfStmt] if (...) ...
# 449| getCondition(): [LogicalAndExpr] ... && ...
# 449| Type = [BoolType] bool
# 449| ValueCategory = prvalue
# 449| getLeftOperand(): [VariableAccess] a
# 449| Type = [BoolType] bool
# 449| ValueCategory = prvalue(load)
# 449| getRightOperand(): [VariableAccess] b
# 449| Type = [BoolType] bool
# 449| ValueCategory = prvalue(load)
# 449| getThen(): [BlockStmt] { ... }
# 450| getStmt(0): [ExprStmt] ExprStmt
# 450| getExpr(): [AssignExpr] ... = ...
# 450| Type = [IntType] int
# 450| ValueCategory = lvalue
# 450| getLValue(): [VariableAccess] x
# 450| Type = [IntType] int
# 450| ValueCategory = lvalue
# 450| getRValue(): [Literal] 7
# 450| Type = [IntType] int
# 450| Value = [Literal] 7
# 450| ValueCategory = prvalue
# 453| getStmt(2): [IfStmt] if (...) ...
# 453| getCondition(): [LogicalAndExpr] ... && ...
# 453| Type = [BoolType] bool
# 453| ValueCategory = prvalue
# 453| getLeftOperand(): [VariableAccess] a
# 453| Type = [BoolType] bool
# 453| ValueCategory = prvalue(load)
# 453| getRightOperand(): [VariableAccess] b
# 453| Type = [BoolType] bool
# 453| ValueCategory = prvalue(load)
# 453| getThen(): [BlockStmt] { ... }
# 454| getStmt(0): [ExprStmt] ExprStmt
# 454| getExpr(): [AssignExpr] ... = ...
# 454| Type = [IntType] int
# 454| ValueCategory = lvalue
# 454| getLValue(): [VariableAccess] x
# 454| Type = [IntType] int
# 454| ValueCategory = lvalue
# 454| getRValue(): [Literal] 1
# 454| Type = [IntType] int
# 454| Value = [Literal] 1
# 454| ValueCategory = prvalue
# 456| getElse(): [BlockStmt] { ... }
# 457| getStmt(0): [ExprStmt] ExprStmt
# 457| getExpr(): [AssignExpr] ... = ...
# 457| Type = [IntType] int
# 457| ValueCategory = lvalue
# 457| getLValue(): [VariableAccess] x
# 457| Type = [IntType] int
# 457| ValueCategory = lvalue
# 457| getRValue(): [Literal] 5
# 457| Type = [IntType] int
# 457| Value = [Literal] 5
# 457| ValueCategory = prvalue
# 459| getStmt(3): [ReturnStmt] return ...
# 461| [TopLevelFunction] void LogicalNot(bool, bool)
# 461| <params>:
# 461| getParameter(0): [Parameter] a
# 461| Type = [BoolType] bool
# 461| getParameter(1): [Parameter] b
# 461| Type = [BoolType] bool
# 461| getEntryPoint(): [BlockStmt] { ... }
# 462| getStmt(0): [DeclStmt] declaration
# 462| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 462| Type = [IntType] int
# 463| getStmt(1): [IfStmt] if (...) ...
# 463| getCondition(): [NotExpr] ! ...
# 463| Type = [BoolType] bool
# 463| ValueCategory = prvalue
# 463| getOperand(): [VariableAccess] a
# 463| Type = [BoolType] bool
# 463| ValueCategory = prvalue(load)
# 463| getThen(): [BlockStmt] { ... }
# 464| getStmt(0): [ExprStmt] ExprStmt
# 464| getExpr(): [AssignExpr] ... = ...
# 464| Type = [IntType] int
# 464| ValueCategory = lvalue
# 464| getLValue(): [VariableAccess] x
# 464| Type = [IntType] int
# 464| ValueCategory = lvalue
# 464| getRValue(): [Literal] 1
# 464| Type = [IntType] int
# 464| Value = [Literal] 1
# 464| ValueCategory = prvalue
# 467| getStmt(2): [IfStmt] if (...) ...
# 467| getCondition(): [NotExpr] ! ...
# 467| Type = [BoolType] bool
# 467| ValueCategory = prvalue
# 467| getOperand(): [LogicalAndExpr] ... && ...
# 467| Type = [BoolType] bool
# 467| ValueCategory = prvalue
# 467| getLeftOperand(): [VariableAccess] a
# 467| Type = [BoolType] bool
# 467| ValueCategory = prvalue(load)
# 467| getRightOperand(): [VariableAccess] b
# 467| Type = [BoolType] bool
# 467| ValueCategory = prvalue(load)
# 467| getOperand().getFullyConverted(): [ParenthesisExpr] (...)
# 467| Type = [BoolType] bool
# 467| ValueCategory = prvalue
# 467| getThen(): [BlockStmt] { ... }
# 468| getStmt(0): [ExprStmt] ExprStmt
# 468| getExpr(): [AssignExpr] ... = ...
# 468| Type = [IntType] int
# 468| ValueCategory = lvalue
# 468| getLValue(): [VariableAccess] x
# 468| Type = [IntType] int
# 468| ValueCategory = lvalue
# 468| getRValue(): [Literal] 2
# 468| Type = [IntType] int
# 468| Value = [Literal] 2
# 468| ValueCategory = prvalue
# 470| getElse(): [BlockStmt] { ... }
# 471| getStmt(0): [ExprStmt] ExprStmt
# 471| getExpr(): [AssignExpr] ... = ...
# 471| Type = [IntType] int
# 471| ValueCategory = lvalue
# 471| getLValue(): [VariableAccess] x
# 471| Type = [IntType] int
# 471| ValueCategory = lvalue
# 471| getRValue(): [Literal] 3
# 471| Type = [IntType] int
# 471| Value = [Literal] 3
# 471| ValueCategory = prvalue
# 473| getStmt(3): [ReturnStmt] return ...
# 475| [TopLevelFunction] void ConditionValues(bool, bool)
# 475| <params>:
# 475| getParameter(0): [Parameter] a
# 475| Type = [BoolType] bool
# 475| getParameter(1): [Parameter] b
# 475| Type = [BoolType] bool
# 475| getEntryPoint(): [BlockStmt] { ... }
# 476| getStmt(0): [DeclStmt] declaration
# 476| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 476| Type = [BoolType] bool
# 477| getStmt(1): [ExprStmt] ExprStmt
# 477| getExpr(): [AssignExpr] ... = ...
# 477| Type = [BoolType] bool
# 477| ValueCategory = lvalue
# 477| getLValue(): [VariableAccess] x
# 477| Type = [BoolType] bool
# 477| ValueCategory = lvalue
# 477| getRValue(): [LogicalAndExpr] ... && ...
# 477| Type = [BoolType] bool
# 477| ValueCategory = prvalue
# 477| getLeftOperand(): [VariableAccess] a
# 477| Type = [BoolType] bool
# 477| ValueCategory = prvalue(load)
# 477| getRightOperand(): [VariableAccess] b
# 477| Type = [BoolType] bool
# 477| ValueCategory = prvalue(load)
# 478| getStmt(2): [ExprStmt] ExprStmt
# 478| getExpr(): [AssignExpr] ... = ...
# 478| Type = [BoolType] bool
# 478| ValueCategory = lvalue
# 478| getLValue(): [VariableAccess] x
# 478| Type = [BoolType] bool
# 478| ValueCategory = lvalue
# 478| getRValue(): [LogicalOrExpr] ... || ...
# 478| Type = [BoolType] bool
# 478| ValueCategory = prvalue
# 478| getLeftOperand(): [VariableAccess] a
# 478| Type = [BoolType] bool
# 478| ValueCategory = prvalue(load)
# 478| getRightOperand(): [VariableAccess] b
# 478| Type = [BoolType] bool
# 478| ValueCategory = prvalue(load)
# 479| getStmt(3): [ExprStmt] ExprStmt
# 479| getExpr(): [AssignExpr] ... = ...
# 479| Type = [BoolType] bool
# 479| ValueCategory = lvalue
# 479| getLValue(): [VariableAccess] x
# 479| Type = [BoolType] bool
# 479| ValueCategory = lvalue
# 479| getRValue(): [NotExpr] ! ...
# 479| Type = [BoolType] bool
# 479| ValueCategory = prvalue
# 479| getOperand(): [LogicalOrExpr] ... || ...
# 479| Type = [BoolType] bool
# 479| ValueCategory = prvalue
# 479| getLeftOperand(): [VariableAccess] a
# 479| Type = [BoolType] bool
# 479| ValueCategory = prvalue(load)
# 479| getRightOperand(): [VariableAccess] b
# 479| Type = [BoolType] bool
# 479| ValueCategory = prvalue(load)
# 479| getOperand().getFullyConverted(): [ParenthesisExpr] (...)
# 479| Type = [BoolType] bool
# 479| ValueCategory = prvalue
# 480| getStmt(4): [ReturnStmt] return ...
# 482| [TopLevelFunction] void Conditional(bool, int, int)
# 482| <params>:
# 482| getParameter(0): [Parameter] a
# 482| Type = [BoolType] bool
# 482| getParameter(1): [Parameter] x
# 482| Type = [IntType] int
# 482| getParameter(2): [Parameter] y
# 482| Type = [IntType] int
# 482| getEntryPoint(): [BlockStmt] { ... }
# 483| getStmt(0): [DeclStmt] declaration
# 483| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 483| Type = [IntType] int
# 483| getVariable().getInitializer(): [Initializer] initializer for z
# 483| getExpr(): [ConditionalExpr] ... ? ... : ...
# 483| Type = [IntType] int
# 483| ValueCategory = prvalue
# 483| getCondition(): [VariableAccess] a
# 483| Type = [BoolType] bool
# 483| ValueCategory = prvalue(load)
# 483| getThen(): [VariableAccess] x
# 483| Type = [IntType] int
# 483| ValueCategory = prvalue(load)
# 483| getElse(): [VariableAccess] y
# 483| Type = [IntType] int
# 483| ValueCategory = prvalue(load)
# 484| getStmt(1): [ReturnStmt] return ...
# 486| [TopLevelFunction] void Conditional_LValue(bool)
# 486| <params>:
# 486| getParameter(0): [Parameter] a
# 486| Type = [BoolType] bool
# 486| getEntryPoint(): [BlockStmt] { ... }
# 487| getStmt(0): [DeclStmt] declaration
# 487| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 487| Type = [IntType] int
# 488| getStmt(1): [DeclStmt] declaration
# 488| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 488| Type = [IntType] int
# 489| getStmt(2): [ExprStmt] ExprStmt
# 489| getExpr(): [AssignExpr] ... = ...
# 489| Type = [IntType] int
# 489| ValueCategory = lvalue
# 489| getLValue(): [ConditionalExpr] ... ? ... : ...
# 489| Type = [IntType] int
# 489| ValueCategory = lvalue
# 489| getCondition(): [VariableAccess] a
# 489| Type = [BoolType] bool
# 489| ValueCategory = prvalue(load)
# 489| getThen(): [VariableAccess] x
# 489| Type = [IntType] int
# 489| ValueCategory = lvalue
# 489| getElse(): [VariableAccess] y
# 489| Type = [IntType] int
# 489| ValueCategory = lvalue
# 489| getRValue(): [Literal] 5
# 489| Type = [IntType] int
# 489| Value = [Literal] 5
# 489| ValueCategory = prvalue
# 489| getLValue().getFullyConverted(): [ParenthesisExpr] (...)
# 489| Type = [IntType] int
# 489| ValueCategory = lvalue
# 490| getStmt(3): [ReturnStmt] return ...
# 492| [TopLevelFunction] void Conditional_Void(bool)
# 492| <params>:
# 492| getParameter(0): [Parameter] a
# 492| Type = [BoolType] bool
# 492| getEntryPoint(): [BlockStmt] { ... }
# 493| getStmt(0): [ExprStmt] ExprStmt
# 493| getExpr(): [ConditionalExpr] ... ? ... : ...
# 493| Type = [VoidType] void
# 493| ValueCategory = prvalue
# 493| getCondition(): [VariableAccess] a
# 493| Type = [BoolType] bool
# 493| ValueCategory = prvalue(load)
# 493| getThen(): [FunctionCall] call to VoidFunc
# 493| Type = [VoidType] void
# 493| ValueCategory = prvalue
# 493| getElse(): [FunctionCall] call to VoidFunc
# 493| Type = [VoidType] void
# 493| ValueCategory = prvalue
# 494| getStmt(1): [ReturnStmt] return ...
# 496| [TopLevelFunction] void Nullptr()
# 496| <params>:
# 496| getEntryPoint(): [BlockStmt] { ... }
# 497| getStmt(0): [DeclStmt] declaration
# 497| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p
# 497| Type = [IntPointerType] int *
# 497| getVariable().getInitializer(): [Initializer] initializer for p
# 497| getExpr(): [Literal] 0
# 497| Type = [NullPointerType] decltype(nullptr)
# 497| Value = [Literal] 0
# 497| ValueCategory = prvalue
# 497| getExpr().getFullyConverted(): [CStyleCast] (int *)...
# 497| Conversion = [PointerConversion] pointer conversion
# 497| Type = [IntPointerType] int *
# 497| Value = [CStyleCast] 0
# 497| ValueCategory = prvalue
# 498| getStmt(1): [DeclStmt] declaration
# 498| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q
# 498| Type = [IntPointerType] int *
# 498| getVariable().getInitializer(): [Initializer] initializer for q
# 498| getExpr(): [Literal] 0
# 498| Type = [IntType] int
# 498| Value = [Literal] 0
# 498| ValueCategory = prvalue
# 498| getExpr().getFullyConverted(): [CStyleCast] (int *)...
# 498| Conversion = [IntegralToPointerConversion] integral to pointer conversion
# 498| Type = [IntPointerType] int *
# 498| Value = [CStyleCast] 0
# 498| ValueCategory = prvalue
# 499| getStmt(2): [ExprStmt] ExprStmt
# 499| getExpr(): [AssignExpr] ... = ...
# 499| Type = [IntPointerType] int *
# 499| ValueCategory = lvalue
# 499| getLValue(): [VariableAccess] p
# 499| Type = [IntPointerType] int *
# 499| ValueCategory = lvalue
# 499| getRValue(): [Literal] 0
# 499| Type = [NullPointerType] decltype(nullptr)
# 499| Value = [Literal] 0
# 499| ValueCategory = prvalue
# 499| getRValue().getFullyConverted(): [CStyleCast] (int *)...
# 499| Conversion = [PointerConversion] pointer conversion
# 499| Type = [IntPointerType] int *
# 499| Value = [CStyleCast] 0
# 499| ValueCategory = prvalue
# 500| getStmt(3): [ExprStmt] ExprStmt
# 500| getExpr(): [AssignExpr] ... = ...
# 500| Type = [IntPointerType] int *
# 500| ValueCategory = lvalue
# 500| getLValue(): [VariableAccess] q
# 500| Type = [IntPointerType] int *
# 500| ValueCategory = lvalue
# 500| getRValue(): [Literal] 0
# 500| Type = [IntType] int
# 500| Value = [Literal] 0
# 500| ValueCategory = prvalue
# 500| getRValue().getFullyConverted(): [CStyleCast] (int *)...
# 500| Conversion = [IntegralToPointerConversion] integral to pointer conversion
# 500| Type = [IntPointerType] int *
# 500| Value = [CStyleCast] 0
# 500| ValueCategory = prvalue
# 501| getStmt(4): [ReturnStmt] return ...
# 503| [TopLevelFunction] void InitList(int, float)
# 503| <params>:
# 503| getParameter(0): [Parameter] x
# 503| Type = [IntType] int
# 503| getParameter(1): [Parameter] f
# 503| Type = [FloatType] float
# 503| getEntryPoint(): [BlockStmt] { ... }
# 504| getStmt(0): [DeclStmt] declaration
# 504| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pt1
# 504| Type = [Struct] Point
# 504| getVariable().getInitializer(): [Initializer] initializer for pt1
# 504| getExpr(): [ClassAggregateLiteral] {...}
# 504| Type = [Struct] Point
# 504| ValueCategory = prvalue
# 504| getFieldExpr(x): [VariableAccess] x
# 504| Type = [IntType] int
# 504| ValueCategory = prvalue(load)
# 504| getFieldExpr(y): [VariableAccess] f
# 504| Type = [FloatType] float
# 504| ValueCategory = prvalue(load)
# 504| getFieldExpr(y).getFullyConverted(): [CStyleCast] (int)...
# 504| Conversion = [FloatingPointToIntegralConversion] floating point to integral conversion
# 504| Type = [IntType] int
# 504| ValueCategory = prvalue
# 505| getStmt(1): [DeclStmt] declaration
# 505| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pt2
# 505| Type = [Struct] Point
# 505| getVariable().getInitializer(): [Initializer] initializer for pt2
# 505| getExpr(): [ClassAggregateLiteral] {...}
# 505| Type = [Struct] Point
# 505| ValueCategory = prvalue
# 505| getFieldExpr(x): [VariableAccess] x
# 505| Type = [IntType] int
# 505| ValueCategory = prvalue(load)
# 506| getStmt(2): [DeclStmt] declaration
# 506| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pt3
# 506| Type = [Struct] Point
# 506| getVariable().getInitializer(): [Initializer] initializer for pt3
# 506| getExpr(): [ClassAggregateLiteral] {...}
# 506| Type = [Struct] Point
# 506| ValueCategory = prvalue
# 508| getStmt(3): [DeclStmt] declaration
# 508| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1
# 508| Type = [IntType] int
# 508| getVariable().getInitializer(): [Initializer] initializer for x1
# 508| getExpr(): [Literal] 1
# 508| Type = [IntType] int
# 508| Value = [Literal] 1
# 508| ValueCategory = prvalue
# 509| getStmt(4): [DeclStmt] declaration
# 509| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x2
# 509| Type = [IntType] int
# 509| getVariable().getInitializer(): [Initializer] initializer for x2
# 509| getExpr(): [Literal] 0
# 509| Type = [IntType] int
# 509| Value = [Literal] 0
# 509| ValueCategory = prvalue
# 510| getStmt(5): [ReturnStmt] return ...
# 512| [TopLevelFunction] void NestedInitList(int, float)
# 512| <params>:
# 512| getParameter(0): [Parameter] x
# 512| Type = [IntType] int
# 512| getParameter(1): [Parameter] f
# 512| Type = [FloatType] float
# 512| getEntryPoint(): [BlockStmt] { ... }
# 513| getStmt(0): [DeclStmt] declaration
# 513| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r1
# 513| Type = [Struct] Rect
# 513| getVariable().getInitializer(): [Initializer] initializer for r1
# 513| getExpr(): [ClassAggregateLiteral] {...}
# 513| Type = [Struct] Rect
# 513| ValueCategory = prvalue
# 514| getStmt(1): [DeclStmt] declaration
# 514| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r2
# 514| Type = [Struct] Rect
# 514| getVariable().getInitializer(): [Initializer] initializer for r2
# 514| getExpr(): [ClassAggregateLiteral] {...}
# 514| Type = [Struct] Rect
# 514| ValueCategory = prvalue
# 514| getFieldExpr(topLeft): [ClassAggregateLiteral] {...}
# 514| Type = [Struct] Point
# 514| ValueCategory = prvalue
# 514| getFieldExpr(x): [VariableAccess] x
# 514| Type = [IntType] int
# 514| ValueCategory = prvalue(load)
# 514| getFieldExpr(y): [VariableAccess] f
# 514| Type = [FloatType] float
# 514| ValueCategory = prvalue(load)
# 514| getFieldExpr(y).getFullyConverted(): [CStyleCast] (int)...
# 514| Conversion = [FloatingPointToIntegralConversion] floating point to integral conversion
# 514| Type = [IntType] int
# 514| ValueCategory = prvalue
# 515| getStmt(2): [DeclStmt] declaration
# 515| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r3
# 515| Type = [Struct] Rect
# 515| getVariable().getInitializer(): [Initializer] initializer for r3
# 515| getExpr(): [ClassAggregateLiteral] {...}
# 515| Type = [Struct] Rect
# 515| ValueCategory = prvalue
# 515| getFieldExpr(topLeft): [ClassAggregateLiteral] {...}
# 515| Type = [Struct] Point
# 515| ValueCategory = prvalue
# 515| getFieldExpr(x): [VariableAccess] x
# 515| Type = [IntType] int
# 515| ValueCategory = prvalue(load)
# 515| getFieldExpr(y): [VariableAccess] f
# 515| Type = [FloatType] float
# 515| ValueCategory = prvalue(load)
# 515| getFieldExpr(y).getFullyConverted(): [CStyleCast] (int)...
# 515| Conversion = [FloatingPointToIntegralConversion] floating point to integral conversion
# 515| Type = [IntType] int
# 515| ValueCategory = prvalue
# 515| getFieldExpr(bottomRight): [ClassAggregateLiteral] {...}
# 515| Type = [Struct] Point
# 515| ValueCategory = prvalue
# 515| getFieldExpr(x): [VariableAccess] x
# 515| Type = [IntType] int
# 515| ValueCategory = prvalue(load)
# 515| getFieldExpr(y): [VariableAccess] f
# 515| Type = [FloatType] float
# 515| ValueCategory = prvalue(load)
# 515| getFieldExpr(y).getFullyConverted(): [CStyleCast] (int)...
# 515| Conversion = [FloatingPointToIntegralConversion] floating point to integral conversion
# 515| Type = [IntType] int
# 515| ValueCategory = prvalue
# 516| getStmt(3): [DeclStmt] declaration
# 516| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r4
# 516| Type = [Struct] Rect
# 516| getVariable().getInitializer(): [Initializer] initializer for r4
# 516| getExpr(): [ClassAggregateLiteral] {...}
# 516| Type = [Struct] Rect
# 516| ValueCategory = prvalue
# 516| getFieldExpr(topLeft): [ClassAggregateLiteral] {...}
# 516| Type = [Struct] Point
# 516| ValueCategory = prvalue
# 516| getFieldExpr(x): [VariableAccess] x
# 516| Type = [IntType] int
# 516| ValueCategory = prvalue(load)
# 516| getFieldExpr(bottomRight): [ClassAggregateLiteral] {...}
# 516| Type = [Struct] Point
# 516| ValueCategory = prvalue
# 516| getFieldExpr(x): [VariableAccess] x
# 516| Type = [IntType] int
# 516| ValueCategory = prvalue(load)
# 517| getStmt(4): [ReturnStmt] return ...
# 519| [TopLevelFunction] void ArrayInit(int, float)
# 519| <params>:
# 519| getParameter(0): [Parameter] x
# 519| Type = [IntType] int
# 519| getParameter(1): [Parameter] f
# 519| Type = [FloatType] float
# 519| getEntryPoint(): [BlockStmt] { ... }
# 520| getStmt(0): [DeclStmt] declaration
# 520| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a1
# 520| Type = [ArrayType] int[3]
# 520| getVariable().getInitializer(): [Initializer] initializer for a1
# 520| getExpr(): [ArrayAggregateLiteral] {...}
# 520| Type = [ArrayType] int[3]
# 520| ValueCategory = prvalue
# 521| getStmt(1): [DeclStmt] declaration
# 521| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a2
# 521| Type = [ArrayType] int[3]
# 521| getVariable().getInitializer(): [Initializer] initializer for a2
# 521| getExpr(): [ArrayAggregateLiteral] {...}
# 521| Type = [ArrayType] int[3]
# 521| ValueCategory = prvalue
# 521| getElementExpr(0): [VariableAccess] x
# 521| Type = [IntType] int
# 521| ValueCategory = prvalue(load)
# 521| getElementExpr(1): [VariableAccess] f
# 521| Type = [FloatType] float
# 521| ValueCategory = prvalue(load)
# 521| getElementExpr(2): [Literal] 0
# 521| Type = [IntType] int
# 521| Value = [Literal] 0
# 521| ValueCategory = prvalue
# 521| getElementExpr(1).getFullyConverted(): [CStyleCast] (int)...
# 521| Conversion = [FloatingPointToIntegralConversion] floating point to integral conversion
# 521| Type = [IntType] int
# 521| ValueCategory = prvalue
# 522| getStmt(2): [DeclStmt] declaration
# 522| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a3
# 522| Type = [ArrayType] int[3]
# 522| getVariable().getInitializer(): [Initializer] initializer for a3
# 522| getExpr(): [ArrayAggregateLiteral] {...}
# 522| Type = [ArrayType] int[3]
# 522| ValueCategory = prvalue
# 522| getElementExpr(0): [VariableAccess] x
# 522| Type = [IntType] int
# 522| ValueCategory = prvalue(load)
# 523| getStmt(3): [ReturnStmt] return ...
# 525| [CopyAssignmentOperator] U& U::operator=(U const&)
# 525| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const U &
# 525| [MoveAssignmentOperator] U& U::operator=(U&&)
# 525| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] U &&
# 530| [TopLevelFunction] void UnionInit(int, float)
# 530| <params>:
# 530| getParameter(0): [Parameter] x
# 530| Type = [IntType] int
# 530| getParameter(1): [Parameter] f
# 530| Type = [FloatType] float
# 530| getEntryPoint(): [BlockStmt] { ... }
# 531| getStmt(0): [DeclStmt] declaration
# 531| getDeclarationEntry(0): [VariableDeclarationEntry] definition of u1
# 531| Type = [Union] U
# 531| getVariable().getInitializer(): [Initializer] initializer for u1
# 531| getExpr(): [ClassAggregateLiteral] {...}
# 531| Type = [Union] U
# 531| ValueCategory = prvalue
# 531| getFieldExpr(d): [VariableAccess] f
# 531| Type = [FloatType] float
# 531| ValueCategory = prvalue(load)
# 531| getFieldExpr(d).getFullyConverted(): [CStyleCast] (double)...
# 531| Conversion = [FloatingPointConversion] floating point conversion
# 531| Type = [DoubleType] double
# 531| ValueCategory = prvalue
# 533| getStmt(1): [ReturnStmt] return ...
# 535| [TopLevelFunction] void EarlyReturn(int, int)
# 535| <params>:
# 535| getParameter(0): [Parameter] x
# 535| Type = [IntType] int
# 535| getParameter(1): [Parameter] y
# 535| Type = [IntType] int
# 535| getEntryPoint(): [BlockStmt] { ... }
# 536| getStmt(0): [IfStmt] if (...) ...
# 536| getCondition(): [LTExpr] ... < ...
# 536| Type = [BoolType] bool
# 536| ValueCategory = prvalue
# 536| getLesserOperand(): [VariableAccess] x
# 536| Type = [IntType] int
# 536| ValueCategory = prvalue(load)
# 536| getGreaterOperand(): [VariableAccess] y
# 536| Type = [IntType] int
# 536| ValueCategory = prvalue(load)
# 536| getThen(): [BlockStmt] { ... }
# 537| getStmt(0): [ReturnStmt] return ...
# 540| getStmt(1): [ExprStmt] ExprStmt
# 540| getExpr(): [AssignExpr] ... = ...
# 540| Type = [IntType] int
# 540| ValueCategory = lvalue
# 540| getLValue(): [VariableAccess] y
# 540| Type = [IntType] int
# 540| ValueCategory = lvalue
# 540| getRValue(): [VariableAccess] x
# 540| Type = [IntType] int
# 540| ValueCategory = prvalue(load)
# 541| getStmt(2): [ReturnStmt] return ...
# 543| [TopLevelFunction] int EarlyReturnValue(int, int)
# 543| <params>:
# 543| getParameter(0): [Parameter] x
# 543| Type = [IntType] int
# 543| getParameter(1): [Parameter] y
# 543| Type = [IntType] int
# 543| getEntryPoint(): [BlockStmt] { ... }
# 544| getStmt(0): [IfStmt] if (...) ...
# 544| getCondition(): [LTExpr] ... < ...
# 544| Type = [BoolType] bool
# 544| ValueCategory = prvalue
# 544| getLesserOperand(): [VariableAccess] x
# 544| Type = [IntType] int
# 544| ValueCategory = prvalue(load)
# 544| getGreaterOperand(): [VariableAccess] y
# 544| Type = [IntType] int
# 544| ValueCategory = prvalue(load)
# 544| getThen(): [BlockStmt] { ... }
# 545| getStmt(0): [ReturnStmt] return ...
# 545| getExpr(): [VariableAccess] x
# 545| Type = [IntType] int
# 545| ValueCategory = prvalue(load)
# 548| getStmt(1): [ReturnStmt] return ...
# 548| getExpr(): [AddExpr] ... + ...
# 548| Type = [IntType] int
# 548| ValueCategory = prvalue
# 548| getLeftOperand(): [VariableAccess] x
# 548| Type = [IntType] int
# 548| ValueCategory = prvalue(load)
# 548| getRightOperand(): [VariableAccess] y
# 548| Type = [IntType] int
# 548| ValueCategory = prvalue(load)
# 551| [TopLevelFunction] int CallViaFuncPtr(int(*)(int))
# 551| <params>:
# 551| getParameter(0): [Parameter] pfn
# 551| Type = [FunctionPointerType] ..(*)(..)
# 551| getEntryPoint(): [BlockStmt] { ... }
# 552| getStmt(0): [ReturnStmt] return ...
# 552| getExpr(): [VariableCall] call to expression
# 552| Type = [IntType] int
# 552| ValueCategory = prvalue
# 552| getExpr(): [VariableAccess] pfn
# 552| Type = [FunctionPointerType] ..(*)(..)
# 552| ValueCategory = prvalue(load)
# 552| getArgument(0): [Literal] 5
# 552| Type = [IntType] int
# 552| Value = [Literal] 5
# 552| ValueCategory = prvalue
# 560| [TopLevelFunction] int EnumSwitch(E)
# 560| <params>:
# 560| getParameter(0): [Parameter] e
# 560| Type = [CTypedefType] E
# 560| getEntryPoint(): [BlockStmt] { ... }
# 561| getStmt(0): [SwitchStmt] switch (...) ...
# 561| getExpr(): [VariableAccess] e
# 561| Type = [CTypedefType] E
# 561| ValueCategory = prvalue(load)
# 561| getStmt(): [BlockStmt] { ... }
# 562| getStmt(0): [SwitchCase] case ...:
# 562| getExpr(): [EnumConstantAccess] E_0
# 562| Type = [Enum] E
# 562| Value = [EnumConstantAccess] 0
# 562| ValueCategory = prvalue
# 562| getExpr().getFullyConverted(): [CStyleCast] (int)...
# 562| Conversion = [IntegralConversion] integral conversion
# 562| Type = [IntType] int
# 562| Value = [CStyleCast] 0
# 562| ValueCategory = prvalue
# 563| getStmt(1): [ReturnStmt] return ...
# 563| getExpr(): [Literal] 0
# 563| Type = [IntType] int
# 563| Value = [Literal] 0
# 563| ValueCategory = prvalue
# 564| getStmt(2): [SwitchCase] case ...:
# 564| getExpr(): [EnumConstantAccess] E_1
# 564| Type = [Enum] E
# 564| Value = [EnumConstantAccess] 1
# 564| ValueCategory = prvalue
# 564| getExpr().getFullyConverted(): [CStyleCast] (int)...
# 564| Conversion = [IntegralConversion] integral conversion
# 564| Type = [IntType] int
# 564| Value = [CStyleCast] 1
# 564| ValueCategory = prvalue
# 565| getStmt(3): [ReturnStmt] return ...
# 565| getExpr(): [Literal] 1
# 565| Type = [IntType] int
# 565| Value = [Literal] 1
# 565| ValueCategory = prvalue
# 566| getStmt(4): [SwitchCase] default:
# 567| getStmt(5): [ReturnStmt] return ...
# 567| getExpr(): [UnaryMinusExpr] - ...
# 567| Type = [IntType] int
# 567| Value = [UnaryMinusExpr] -1
# 567| ValueCategory = prvalue
# 567| getOperand(): [Literal] 1
# 567| Type = [IntType] int
# 567| Value = [Literal] 1
# 567| ValueCategory = prvalue
# 561| getExpr().getFullyConverted(): [CStyleCast] (int)...
# 561| Conversion = [IntegralConversion] integral conversion
# 561| Type = [IntType] int
# 561| ValueCategory = prvalue
# 571| [TopLevelFunction] void InitArray()
# 571| <params>:
# 571| getEntryPoint(): [BlockStmt] { ... }
# 572| getStmt(0): [DeclStmt] declaration
# 572| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a_pad
# 572| Type = [ArrayType] char[32]
# 572| getVariable().getInitializer(): [Initializer] initializer for a_pad
# 572| getExpr():
# 572| Type = [ArrayType] const char[32]
# 572| Value = [StringLiteral] ""
# 572| ValueCategory = lvalue
# 573| getStmt(1): [DeclStmt] declaration
# 573| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a_nopad
# 573| Type = [ArrayType] char[4]
# 573| getVariable().getInitializer(): [Initializer] initializer for a_nopad
# 573| getExpr(): foo
# 573| Type = [ArrayType] const char[4]
# 573| Value = [StringLiteral] "foo"
# 573| ValueCategory = lvalue
# 574| getStmt(2): [DeclStmt] declaration
# 574| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a_infer
# 574| Type = [ArrayType] char[]
# 574| getVariable().getInitializer(): [Initializer] initializer for a_infer
# 574| getExpr(): blah
# 574| Type = [ArrayType] const char[5]
# 574| Value = [StringLiteral] "blah"
# 574| ValueCategory = lvalue
# 575| getStmt(3): [DeclStmt] declaration
# 575| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 575| Type = [ArrayType] char[2]
# 576| getStmt(4): [DeclStmt] declaration
# 576| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
# 576| Type = [ArrayType] char[2]
# 576| getVariable().getInitializer(): [Initializer] initializer for c
# 576| getExpr(): [ArrayAggregateLiteral] {...}
# 576| Type = [ArrayType] char[2]
# 576| ValueCategory = prvalue
# 577| getStmt(5): [DeclStmt] declaration
# 577| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 577| Type = [ArrayType] char[2]
# 577| getVariable().getInitializer(): [Initializer] initializer for d
# 577| getExpr(): [ArrayAggregateLiteral] {...}
# 577| Type = [ArrayType] char[2]
# 577| ValueCategory = prvalue
# 577| getElementExpr(0): [Literal] 0
# 577| Type = [IntType] int
# 577| Value = [Literal] 0
# 577| ValueCategory = prvalue
# 577| getElementExpr(0).getFullyConverted(): [CStyleCast] (char)...
# 577| Conversion = [IntegralConversion] integral conversion
# 577| Type = [PlainCharType] char
# 577| Value = [CStyleCast] 0
# 577| ValueCategory = prvalue
# 578| getStmt(6): [DeclStmt] declaration
# 578| getDeclarationEntry(0): [VariableDeclarationEntry] definition of e
# 578| Type = [ArrayType] char[2]
# 578| getVariable().getInitializer(): [Initializer] initializer for e
# 578| getExpr(): [ArrayAggregateLiteral] {...}
# 578| Type = [ArrayType] char[2]
# 578| ValueCategory = prvalue
# 578| getElementExpr(0): [Literal] 0
# 578| Type = [IntType] int
# 578| Value = [Literal] 0
# 578| ValueCategory = prvalue
# 578| getElementExpr(1): [Literal] 1
# 578| Type = [IntType] int
# 578| Value = [Literal] 1
# 578| ValueCategory = prvalue
# 578| getElementExpr(0).getFullyConverted(): [CStyleCast] (char)...
# 578| Conversion = [IntegralConversion] integral conversion
# 578| Type = [PlainCharType] char
# 578| Value = [CStyleCast] 0
# 578| ValueCategory = prvalue
# 578| getElementExpr(1).getFullyConverted(): [CStyleCast] (char)...
# 578| Conversion = [IntegralConversion] integral conversion
# 578| Type = [PlainCharType] char
# 578| Value = [CStyleCast] 1
# 578| ValueCategory = prvalue
# 579| getStmt(7): [DeclStmt] declaration
# 579| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f
# 579| Type = [ArrayType] char[3]
# 579| getVariable().getInitializer(): [Initializer] initializer for f
# 579| getExpr(): [ArrayAggregateLiteral] {...}
# 579| Type = [ArrayType] char[3]
# 579| ValueCategory = prvalue
# 579| getElementExpr(0): [Literal] 0
# 579| Type = [IntType] int
# 579| Value = [Literal] 0
# 579| ValueCategory = prvalue
# 579| getElementExpr(0).getFullyConverted(): [CStyleCast] (char)...
# 579| Conversion = [IntegralConversion] integral conversion
# 579| Type = [PlainCharType] char
# 579| Value = [CStyleCast] 0
# 579| ValueCategory = prvalue
# 580| getStmt(8): [ReturnStmt] return ...
# 582| [TopLevelFunction] void VarArgFunction(char const*)
# 582| <params>:
# 582| getParameter(0): [Parameter] s
# 582| Type = [PointerType] const char *
# 584| [TopLevelFunction] void VarArgs()
# 584| <params>:
# 584| getEntryPoint(): [BlockStmt] { ... }
# 585| getStmt(0): [ExprStmt] ExprStmt
# 585| getExpr(): [FunctionCall] call to VarArgFunction
# 585| Type = [VoidType] void
# 585| ValueCategory = prvalue
# 585| getArgument(0): %d %s
# 585| Type = [ArrayType] const char[6]
# 585| Value = [StringLiteral] "%d %s"
# 585| ValueCategory = lvalue
# 585| getArgument(1): [Literal] 1
# 585| Type = [IntType] int
# 585| Value = [Literal] 1
# 585| ValueCategory = prvalue
# 585| getArgument(2): string
# 585| Type = [ArrayType] const char[7]
# 585| Value = [StringLiteral] "string"
# 585| ValueCategory = lvalue
# 585| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 585| Type = [PointerType] const char *
# 585| ValueCategory = prvalue
# 585| getArgument(2).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 585| Type = [PointerType] const char *
# 585| ValueCategory = prvalue
# 586| getStmt(1): [ReturnStmt] return ...
# 588| [TopLevelFunction] int FuncPtrTarget(int)
# 588| <params>:
# 588| getParameter(0): [Parameter] (unnamed parameter 0)
# 588| Type = [IntType] int
# 590| [TopLevelFunction] void SetFuncPtr()
# 590| <params>:
# 590| getEntryPoint(): [BlockStmt] { ... }
# 591| getStmt(0): [DeclStmt] declaration
# 591| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pfn
# 591| Type = [FunctionPointerType] ..(*)(..)
# 591| getVariable().getInitializer(): [Initializer] initializer for pfn
# 591| getExpr(): [FunctionAccess] FuncPtrTarget
# 591| Type = [FunctionPointerType] ..(*)(..)
# 591| ValueCategory = prvalue(load)
# 592| getStmt(1): [ExprStmt] ExprStmt
# 592| getExpr(): [AssignExpr] ... = ...
# 592| Type = [FunctionPointerType] ..(*)(..)
# 592| ValueCategory = lvalue
# 592| getLValue(): [VariableAccess] pfn
# 592| Type = [FunctionPointerType] ..(*)(..)
# 592| ValueCategory = lvalue
# 592| getRValue(): [AddressOfExpr] & ...
# 592| Type = [FunctionPointerType] ..(*)(..)
# 592| ValueCategory = prvalue
# 592| getOperand(): [FunctionAccess] FuncPtrTarget
# 592| Type = [RoutineType] ..()(..)
# 592| ValueCategory = lvalue
# 593| getStmt(2): [ExprStmt] ExprStmt
# 593| getExpr(): [AssignExpr] ... = ...
# 593| Type = [FunctionPointerType] ..(*)(..)
# 593| ValueCategory = lvalue
# 593| getLValue(): [VariableAccess] pfn
# 593| Type = [FunctionPointerType] ..(*)(..)
# 593| ValueCategory = lvalue
# 593| getRValue(): [PointerDereferenceExpr] * ...
# 593| Type = [FunctionPointerType] ..(*)(..)
# 593| ValueCategory = prvalue(load)
# 593| getOperand(): [FunctionAccess] FuncPtrTarget
# 593| Type = [FunctionPointerType] ..(*)(..)
# 593| ValueCategory = prvalue(load)
# 594| getStmt(3): [ExprStmt] ExprStmt
# 594| getExpr(): [AssignExpr] ... = ...
# 594| Type = [FunctionPointerType] ..(*)(..)
# 594| ValueCategory = lvalue
# 594| getLValue(): [VariableAccess] pfn
# 594| Type = [FunctionPointerType] ..(*)(..)
# 594| ValueCategory = lvalue
# 594| getRValue(): [PointerDereferenceExpr] * ...
# 594| Type = [FunctionPointerType] ..(*)(..)
# 594| ValueCategory = prvalue(load)
# 594| getOperand(): [PointerDereferenceExpr] * ...
# 594| Type = [FunctionPointerType] ..(*)(..)
# 594| ValueCategory = prvalue(load)
# 594| getOperand(): [PointerDereferenceExpr] * ...
# 594| Type = [FunctionPointerType] ..(*)(..)
# 594| ValueCategory = prvalue(load)
# 594| getOperand(): [AddressOfExpr] & ...
# 594| Type = [FunctionPointerType] ..(*)(..)
# 594| ValueCategory = prvalue
# 594| getOperand(): [FunctionAccess] FuncPtrTarget
# 594| Type = [RoutineType] ..()(..)
# 594| ValueCategory = lvalue
# 595| getStmt(4): [ReturnStmt] return ...
# 599| [CopyConstructor] void String::String(String const&)
# 599| <params>:
# 599| getParameter(0): [Parameter] (unnamed parameter 0)
# 599| Type = [LValueReferenceType] const String &
# 600| [MoveConstructor] void String::String(String&&)
# 600| <params>:
# 600| getParameter(0): [Parameter] (unnamed parameter 0)
# 600| Type = [RValueReferenceType] String &&
# 601| [ConversionConstructor] void String::String(char const*)
# 601| <params>:
# 601| getParameter(0): [Parameter] (unnamed parameter 0)
# 601| Type = [PointerType] const char *
# 602| [Destructor] void String::~String()
# 602| <params>:
# 604| [CopyAssignmentOperator] String& String::operator=(String const&)
# 604| <params>:
# 604| getParameter(0): [Parameter] (unnamed parameter 0)
# 604| Type = [LValueReferenceType] const String &
# 605| [MoveAssignmentOperator] String& String::operator=(String&&)
# 605| <params>:
# 605| getParameter(0): [Parameter] (unnamed parameter 0)
# 605| Type = [RValueReferenceType] String &&
# 607| [ConstMemberFunction] char const* String::c_str() const
# 607| <params>:
# 613| [TopLevelFunction] String ReturnObject()
# 613| <params>:
# 615| [TopLevelFunction] void DeclareObject()
# 615| <params>:
# 615| getEntryPoint(): [BlockStmt] { ... }
# 616| getStmt(0): [DeclStmt] declaration
# 616| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1
# 616| Type = [Struct] String
# 616| getVariable().getInitializer(): [Initializer] initializer for s1
# 616| getExpr(): [ConstructorCall] call to String
# 616| Type = [VoidType] void
# 616| ValueCategory = prvalue
# 617| getStmt(1): [DeclStmt] declaration
# 617| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2
# 617| Type = [Struct] String
# 617| getVariable().getInitializer(): [Initializer] initializer for s2
# 617| getExpr(): [ConstructorCall] call to String
# 617| Type = [VoidType] void
# 617| ValueCategory = prvalue
# 617| getArgument(0): hello
# 617| Type = [ArrayType] const char[6]
# 617| Value = [StringLiteral] "hello"
# 617| ValueCategory = lvalue
# 617| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 617| Type = [PointerType] const char *
# 617| ValueCategory = prvalue
# 618| getStmt(2): [DeclStmt] declaration
# 618| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s3
# 618| Type = [Struct] String
# 618| getVariable().getInitializer(): [Initializer] initializer for s3
# 618| getExpr(): [FunctionCall] call to ReturnObject
# 618| Type = [Struct] String
# 618| ValueCategory = prvalue
# 619| getStmt(3): [DeclStmt] declaration
# 619| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s4
# 619| Type = [Struct] String
# 619| getVariable().getInitializer(): [Initializer] initializer for s4
# 619| getExpr(): [ConstructorCall] call to String
# 619| Type = [VoidType] void
# 619| ValueCategory = prvalue
# 619| getArgument(0): test
# 619| Type = [ArrayType] const char[5]
# 619| Value = [StringLiteral] "test"
# 619| ValueCategory = lvalue
# 619| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 619| Type = [PointerType] const char *
# 619| ValueCategory = prvalue
# 620| getStmt(4): [ReturnStmt] return ...
# 622| [TopLevelFunction] void CallMethods(String&, String*, String)
# 622| <params>:
# 622| getParameter(0): [Parameter] r
# 622| Type = [LValueReferenceType] String &
# 622| getParameter(1): [Parameter] p
# 622| Type = [PointerType] String *
# 622| getParameter(2): [Parameter] s
# 622| Type = [Struct] String
# 622| getEntryPoint(): [BlockStmt] { ... }
# 623| getStmt(0): [ExprStmt] ExprStmt
# 623| getExpr(): [FunctionCall] call to c_str
# 623| Type = [PointerType] const char *
# 623| ValueCategory = prvalue
# 623| getQualifier(): [VariableAccess] r
# 623| Type = [LValueReferenceType] String &
# 623| ValueCategory = prvalue(load)
# 623| getQualifier().getFullyConverted(): [CStyleCast] (const String)...
# 623| Conversion = [GlvalueConversion] glvalue conversion
# 623| Type = [SpecifiedType] const String
# 623| ValueCategory = lvalue
# 623| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 623| Type = [Struct] String
# 623| ValueCategory = lvalue
# 624| getStmt(1): [ExprStmt] ExprStmt
# 624| getExpr(): [FunctionCall] call to c_str
# 624| Type = [PointerType] const char *
# 624| ValueCategory = prvalue
# 624| getQualifier(): [VariableAccess] p
# 624| Type = [PointerType] String *
# 624| ValueCategory = prvalue(load)
# 624| getQualifier().getFullyConverted(): [CStyleCast] (const String *)...
# 624| Conversion = [PointerConversion] pointer conversion
# 624| Type = [PointerType] const String *
# 624| ValueCategory = prvalue
# 625| getStmt(2): [ExprStmt] ExprStmt
# 625| getExpr(): [FunctionCall] call to c_str
# 625| Type = [PointerType] const char *
# 625| ValueCategory = prvalue
# 625| getQualifier(): [VariableAccess] s
# 625| Type = [Struct] String
# 625| ValueCategory = lvalue
# 625| getQualifier().getFullyConverted(): [CStyleCast] (const String)...
# 625| Conversion = [GlvalueConversion] glvalue conversion
# 625| Type = [SpecifiedType] const String
# 625| ValueCategory = lvalue
# 626| getStmt(3): [ReturnStmt] return ...
# 628| [CopyAssignmentOperator] C& C::operator=(C const&)
# 628| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const C &
# 628| [MoveAssignmentOperator] C& C::operator=(C&&)
# 628| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] C &&
# 628| [CopyConstructor] void C::C(C const&)
# 628| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const C &
# 628| [MoveConstructor] void C::C(C&&)
# 628| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] C &&
# 628| [Destructor] void C::~C()
# 628| <params>:
#-----| getEntryPoint(): [BlockStmt] { ... }
#-----| getStmt(0): [ReturnStmt] return ...
# 628| <destructions>:
# 628| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of m_f
# 628| Type = [Struct] String
# 628| ValueCategory = prvalue
# 628| getExpr(): [DestructorCall] call to ~String
# 628| Type = [VoidType] void
# 628| ValueCategory = prvalue
# 628| getQualifier(): [ImplicitThisFieldAccess] m_f
# 628| Type = [Struct] String
# 628| ValueCategory = lvalue
# 628| getDestruction(1): [DestructorFieldDestruction] destructor field destruction of m_b
# 628| Type = [Struct] String
# 628| ValueCategory = prvalue
# 628| getExpr(): [DestructorCall] call to ~String
# 628| Type = [VoidType] void
# 628| ValueCategory = prvalue
# 628| getQualifier(): [ImplicitThisFieldAccess] m_b
# 628| Type = [Struct] String
# 628| ValueCategory = lvalue
# 630| [MemberFunction] int C::StaticMemberFunction(int)
# 630| <params>:
# 630| getParameter(0): [Parameter] x
# 630| Type = [IntType] int
# 630| getEntryPoint(): [BlockStmt] { ... }
# 631| getStmt(0): [ReturnStmt] return ...
# 631| getExpr(): [VariableAccess] x
# 631| Type = [IntType] int
# 631| ValueCategory = prvalue(load)
# 634| [MemberFunction] int C::InstanceMemberFunction(int)
# 634| <params>:
# 634| getParameter(0): [Parameter] x
# 634| Type = [IntType] int
# 634| getEntryPoint(): [BlockStmt] { ... }
# 635| getStmt(0): [ReturnStmt] return ...
# 635| getExpr(): [VariableAccess] x
# 635| Type = [IntType] int
# 635| ValueCategory = prvalue(load)
# 638| [VirtualFunction] int C::VirtualMemberFunction(int)
# 638| <params>:
# 638| getParameter(0): [Parameter] x
# 638| Type = [IntType] int
# 638| getEntryPoint(): [BlockStmt] { ... }
# 639| getStmt(0): [ReturnStmt] return ...
# 639| getExpr(): [VariableAccess] x
# 639| Type = [IntType] int
# 639| ValueCategory = prvalue(load)
# 642| [MemberFunction] void C::FieldAccess()
# 642| <params>:
# 642| getEntryPoint(): [BlockStmt] { ... }
# 643| getStmt(0): [ExprStmt] ExprStmt
# 643| getExpr(): [AssignExpr] ... = ...
# 643| Type = [IntType] int
# 643| ValueCategory = lvalue
# 643| getLValue(): [PointerFieldAccess] m_a
# 643| Type = [IntType] int
# 643| ValueCategory = lvalue
# 643| getQualifier(): [ThisExpr] this
# 643| Type = [PointerType] C *
# 643| ValueCategory = prvalue(load)
# 643| getRValue(): [Literal] 0
# 643| Type = [IntType] int
# 643| Value = [Literal] 0
# 643| ValueCategory = prvalue
# 644| getStmt(1): [ExprStmt] ExprStmt
# 644| getExpr(): [AssignExpr] ... = ...
# 644| Type = [IntType] int
# 644| ValueCategory = lvalue
# 644| getLValue(): [ValueFieldAccess] m_a
# 644| Type = [IntType] int
# 644| ValueCategory = lvalue
# 644| getQualifier(): [PointerDereferenceExpr] * ...
# 644| Type = [Class] C
# 644| ValueCategory = lvalue
# 644| getOperand(): [ThisExpr] this
# 644| Type = [PointerType] C *
# 644| ValueCategory = prvalue(load)
# 644| getQualifier().getFullyConverted(): [ParenthesisExpr] (...)
# 644| Type = [Class] C
# 644| ValueCategory = lvalue
# 644| getRValue(): [Literal] 1
# 644| Type = [IntType] int
# 644| Value = [Literal] 1
# 644| ValueCategory = prvalue
# 645| getStmt(2): [ExprStmt] ExprStmt
# 645| getExpr(): [AssignExpr] ... = ...
# 645| Type = [IntType] int
# 645| ValueCategory = lvalue
# 645| getLValue(): [PointerFieldAccess] m_a
# 645| Type = [IntType] int
# 645| ValueCategory = lvalue
# 645| getQualifier(): [ThisExpr] this
# 645| Type = [PointerType] C *
# 645| ValueCategory = prvalue(load)
# 645| getRValue(): [Literal] 2
# 645| Type = [IntType] int
# 645| Value = [Literal] 2
# 645| ValueCategory = prvalue
# 646| getStmt(3): [DeclStmt] declaration
# 646| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 646| Type = [IntType] int
# 647| getStmt(4): [ExprStmt] ExprStmt
# 647| getExpr(): [AssignExpr] ... = ...
# 647| Type = [IntType] int
# 647| ValueCategory = lvalue
# 647| getLValue(): [VariableAccess] x
# 647| Type = [IntType] int
# 647| ValueCategory = lvalue
# 647| getRValue(): [PointerFieldAccess] m_a
# 647| Type = [IntType] int
# 647| ValueCategory = prvalue(load)
# 647| getQualifier(): [ThisExpr] this
# 647| Type = [PointerType] C *
# 647| ValueCategory = prvalue(load)
# 648| getStmt(5): [ExprStmt] ExprStmt
# 648| getExpr(): [AssignExpr] ... = ...
# 648| Type = [IntType] int
# 648| ValueCategory = lvalue
# 648| getLValue(): [VariableAccess] x
# 648| Type = [IntType] int
# 648| ValueCategory = lvalue
# 648| getRValue(): [ValueFieldAccess] m_a
# 648| Type = [IntType] int
# 648| ValueCategory = prvalue(load)
# 648| getQualifier(): [PointerDereferenceExpr] * ...
# 648| Type = [Class] C
# 648| ValueCategory = lvalue
# 648| getOperand(): [ThisExpr] this
# 648| Type = [PointerType] C *
# 648| ValueCategory = prvalue(load)
# 648| getQualifier().getFullyConverted(): [ParenthesisExpr] (...)
# 648| Type = [Class] C
# 648| ValueCategory = lvalue
# 649| getStmt(6): [ExprStmt] ExprStmt
# 649| getExpr(): [AssignExpr] ... = ...
# 649| Type = [IntType] int
# 649| ValueCategory = lvalue
# 649| getLValue(): [VariableAccess] x
# 649| Type = [IntType] int
# 649| ValueCategory = lvalue
# 649| getRValue(): [PointerFieldAccess] m_a
# 649| Type = [IntType] int
# 649| ValueCategory = prvalue(load)
# 649| getQualifier(): [ThisExpr] this
# 649| Type = [PointerType] C *
# 649| ValueCategory = prvalue(load)
# 650| getStmt(7): [ReturnStmt] return ...
# 652| [MemberFunction] void C::MethodCalls()
# 652| <params>:
# 652| getEntryPoint(): [BlockStmt] { ... }
# 653| getStmt(0): [ExprStmt] ExprStmt
# 653| getExpr(): [FunctionCall] call to InstanceMemberFunction
# 653| Type = [IntType] int
# 653| ValueCategory = prvalue
# 653| getQualifier(): [ThisExpr] this
# 653| Type = [PointerType] C *
# 653| ValueCategory = prvalue(load)
# 653| getArgument(0): [Literal] 0
# 653| Type = [IntType] int
# 653| Value = [Literal] 0
# 653| ValueCategory = prvalue
# 654| getStmt(1): [ExprStmt] ExprStmt
# 654| getExpr(): [FunctionCall] call to InstanceMemberFunction
# 654| Type = [IntType] int
# 654| ValueCategory = prvalue
# 654| getQualifier(): [PointerDereferenceExpr] * ...
# 654| Type = [Class] C
# 654| ValueCategory = lvalue
# 654| getOperand(): [ThisExpr] this
# 654| Type = [PointerType] C *
# 654| ValueCategory = prvalue(load)
# 654| getArgument(0): [Literal] 1
# 654| Type = [IntType] int
# 654| Value = [Literal] 1
# 654| ValueCategory = prvalue
# 654| getQualifier().getFullyConverted(): [ParenthesisExpr] (...)
# 654| Type = [Class] C
# 654| ValueCategory = lvalue
# 655| getStmt(2): [ExprStmt] ExprStmt
# 655| getExpr(): [FunctionCall] call to InstanceMemberFunction
# 655| Type = [IntType] int
# 655| ValueCategory = prvalue
# 655| getQualifier(): [ThisExpr] this
# 655| Type = [PointerType] C *
# 655| ValueCategory = prvalue(load)
# 655| getArgument(0): [Literal] 2
# 655| Type = [IntType] int
# 655| Value = [Literal] 2
# 655| ValueCategory = prvalue
# 656| getStmt(3): [ReturnStmt] return ...
# 658| [Constructor] void C::C()
# 658| <params>:
# 658| <initializations>:
# 659| getInitializer(0): [ConstructorFieldInit] 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| 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| Type = [PlainCharType] char
# 660| ValueCategory = prvalue
# 660| getExpr(): [Literal] 3
# 660| Type = [IntType] int
# 660| Value = [Literal] 3
# 660| ValueCategory = prvalue
# 660| getExpr().getFullyConverted(): [CStyleCast] (char)...
# 660| Conversion = [IntegralConversion] integral conversion
# 660| Type = [PlainCharType] char
# 660| Value = [CStyleCast] 3
# 660| ValueCategory = prvalue
# 661| getInitializer(3): [ConstructorFieldInit] 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| Type = [Struct] String
# 662| ValueCategory = prvalue
# 662| getExpr(): [ConstructorCall] call to String
# 662| Type = [VoidType] void
# 662| ValueCategory = prvalue
# 662| getArgument(0): test
# 662| Type = [ArrayType] const char[5]
# 662| Value = [StringLiteral] "test"
# 662| ValueCategory = lvalue
# 662| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 662| Type = [PointerType] const char *
# 662| ValueCategory = prvalue
# 663| getEntryPoint(): [BlockStmt] { ... }
# 664| getStmt(0): [ReturnStmt] return ...
# 675| [TopLevelFunction] int DerefReference(int&)
# 675| <params>:
# 675| getParameter(0): [Parameter] r
# 675| Type = [LValueReferenceType] int &
# 675| getEntryPoint(): [BlockStmt] { ... }
# 676| getStmt(0): [ReturnStmt] return ...
# 676| getExpr(): [VariableAccess] r
# 676| Type = [LValueReferenceType] int &
# 676| ValueCategory = prvalue(load)
# 676| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 676| Type = [IntType] int
# 676| ValueCategory = prvalue(load)
# 679| [TopLevelFunction] int& TakeReference()
# 679| <params>:
# 679| getEntryPoint(): [BlockStmt] { ... }
# 680| getStmt(0): [ReturnStmt] return ...
# 680| getExpr(): [VariableAccess] g
# 680| Type = [IntType] int
# 680| ValueCategory = lvalue
# 680| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 680| Type = [LValueReferenceType] int &
# 680| ValueCategory = prvalue
# 683| [TopLevelFunction] String& ReturnReference()
# 683| <params>:
# 685| [TopLevelFunction] void InitReference(int)
# 685| <params>:
# 685| getParameter(0): [Parameter] x
# 685| Type = [IntType] int
# 685| getEntryPoint(): [BlockStmt] { ... }
# 686| getStmt(0): [DeclStmt] declaration
# 686| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r
# 686| Type = [LValueReferenceType] int &
# 686| getVariable().getInitializer(): [Initializer] initializer for r
# 686| getExpr(): [VariableAccess] x
# 686| Type = [IntType] int
# 686| ValueCategory = lvalue
# 686| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 686| Type = [LValueReferenceType] int &
# 686| ValueCategory = prvalue
# 687| getStmt(1): [DeclStmt] declaration
# 687| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r2
# 687| Type = [LValueReferenceType] int &
# 687| getVariable().getInitializer(): [Initializer] initializer for r2
# 687| getExpr(): [VariableAccess] r
# 687| Type = [LValueReferenceType] int &
# 687| ValueCategory = prvalue(load)
# 687| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 687| Type = [LValueReferenceType] int &
# 687| ValueCategory = prvalue
# 687| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 687| Type = [IntType] int
# 687| ValueCategory = lvalue
# 688| getStmt(2): [DeclStmt] declaration
# 688| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r3
# 688| Type = [LValueReferenceType] const String &
# 688| getVariable().getInitializer(): [Initializer] initializer for r3
# 688| getExpr(): [FunctionCall] call to ReturnReference
# 688| Type = [LValueReferenceType] String &
# 688| ValueCategory = prvalue
# 688| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 688| Type = [LValueReferenceType] const String &
# 688| ValueCategory = prvalue
# 688| getExpr(): [CStyleCast] (const String)...
# 688| Conversion = [GlvalueConversion] glvalue conversion
# 688| Type = [SpecifiedType] const String
# 688| ValueCategory = lvalue
# 688| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 688| Type = [Struct] String
# 688| ValueCategory = lvalue
# 689| getStmt(3): [ReturnStmt] return ...
# 691| [TopLevelFunction] void ArrayReferences()
# 691| <params>:
# 691| getEntryPoint(): [BlockStmt] { ... }
# 692| getStmt(0): [DeclStmt] declaration
# 692| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
# 692| Type = [ArrayType] int[10]
# 693| getStmt(1): [DeclStmt] declaration
# 693| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ra
# 693| Type = [LValueReferenceType] int(&)[10]
# 693| getVariable().getInitializer(): [Initializer] initializer for ra
# 693| getExpr(): [VariableAccess] a
# 693| Type = [ArrayType] int[10]
# 693| ValueCategory = lvalue
# 693| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 693| Type = [LValueReferenceType] int(&)[10]
# 693| ValueCategory = prvalue
# 694| getStmt(2): [DeclStmt] declaration
# 694| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 694| Type = [IntType] int
# 694| getVariable().getInitializer(): [Initializer] initializer for x
# 694| getExpr(): [ArrayExpr] access to array
# 694| Type = [IntType] int
# 694| ValueCategory = prvalue(load)
# 694| getArrayBase(): [VariableAccess] ra
# 694| Type = [LValueReferenceType] int(&)[10]
# 694| ValueCategory = prvalue(load)
# 694| getArrayOffset(): [Literal] 5
# 694| Type = [IntType] int
# 694| Value = [Literal] 5
# 694| ValueCategory = prvalue
# 694| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 694| Type = [IntPointerType] int *
# 694| ValueCategory = prvalue
# 694| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 694| Type = [ArrayType] int[10]
# 694| ValueCategory = lvalue
# 695| getStmt(3): [ReturnStmt] return ...
# 697| [TopLevelFunction] void FunctionReferences()
# 697| <params>:
# 697| getEntryPoint(): [BlockStmt] { ... }
# 698| getStmt(0): [DeclStmt] declaration
# 698| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rfn
# 698| Type = [FunctionReferenceType] ..(&)(..)
# 698| getVariable().getInitializer(): [Initializer] initializer for rfn
# 698| getExpr(): [FunctionAccess] FuncPtrTarget
# 698| Type = [RoutineType] ..()(..)
# 698| ValueCategory = lvalue
# 698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 698| Type = [FunctionReferenceType] ..(&)(..)
# 698| ValueCategory = prvalue
# 699| getStmt(1): [DeclStmt] declaration
# 699| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pfn
# 699| Type = [FunctionPointerType] ..(*)(..)
# 699| getVariable().getInitializer(): [Initializer] initializer for pfn
# 699| getExpr(): [VariableAccess] rfn
# 699| Type = [FunctionReferenceType] ..(&)(..)
# 699| ValueCategory = prvalue(load)
# 699| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 699| Type = [FunctionPointerType] ..(*)(..)
# 699| ValueCategory = prvalue(load)
# 700| getStmt(2): [ExprStmt] ExprStmt
# 700| getExpr(): [VariableCall] call to expression
# 700| Type = [IntType] int
# 700| ValueCategory = prvalue
# 700| getExpr(): [VariableAccess] rfn
# 700| Type = [FunctionReferenceType] ..(&)(..)
# 700| ValueCategory = prvalue(load)
# 700| getArgument(0): [Literal] 5
# 700| Type = [IntType] int
# 700| Value = [Literal] 5
# 700| ValueCategory = prvalue
# 700| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 700| Type = [FunctionPointerType] ..(*)(..)
# 700| ValueCategory = prvalue(load)
# 701| getStmt(3): [ReturnStmt] return ...
# 704| [TemplateFunction,TopLevelFunction] T min<T>(T, T)
# 704| <params>:
# 704| getParameter(0): [Parameter] x
# 704| Type = [TemplateParameter] T
# 704| getParameter(1): [Parameter] y
# 704| Type = [TemplateParameter] T
# 704| getEntryPoint(): [BlockStmt] { ... }
# 705| getStmt(0): [ReturnStmt] return ...
# 705| getExpr(): [ConditionalExpr] ... ? ... : ...
# 705| Type = [UnknownType] unknown
# 705| ValueCategory = prvalue
# 705| getCondition(): [LTExpr] ... < ...
# 705| Type = [UnknownType] unknown
# 705| ValueCategory = prvalue
# 705| getLesserOperand(): [VariableAccess] x
# 705| Type = [TemplateParameter] T
# 705| ValueCategory = lvalue
# 705| getGreaterOperand(): [VariableAccess] y
# 705| Type = [TemplateParameter] T
# 705| ValueCategory = lvalue
# 705| getThen(): [VariableAccess] x
# 705| Type = [TemplateParameter] T
# 705| ValueCategory = lvalue
# 705| getElse(): [VariableAccess] y
# 705| Type = [TemplateParameter] T
# 705| ValueCategory = lvalue
# 705| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 705| Conversion = [BoolConversion] conversion to bool
# 705| Type = [BoolType] bool
# 705| ValueCategory = prvalue
# 705| getExpr(): [ParenthesisExpr] (...)
# 705| Type = [UnknownType] unknown
# 705| ValueCategory = prvalue
# 704| [FunctionTemplateInstantiation,TopLevelFunction] int min<int>(int, int)
# 704| <params>:
# 704| getParameter(0): [Parameter] x
# 704| Type = [IntType] int
# 704| getParameter(1): [Parameter] y
# 704| Type = [IntType] int
# 704| getEntryPoint(): [BlockStmt] { ... }
# 705| getStmt(0): [ReturnStmt] return ...
# 705| getExpr(): [ConditionalExpr] ... ? ... : ...
# 705| Type = [IntType] int
# 705| ValueCategory = prvalue
# 705| getCondition(): [LTExpr] ... < ...
# 705| Type = [BoolType] bool
# 705| ValueCategory = prvalue
# 705| getLesserOperand(): [VariableAccess] x
# 705| Type = [IntType] int
# 705| ValueCategory = prvalue(load)
# 705| getGreaterOperand(): [VariableAccess] y
# 705| Type = [IntType] int
# 705| ValueCategory = prvalue(load)
# 705| getThen(): [VariableAccess] x
# 705| Type = [IntType] int
# 705| ValueCategory = prvalue(load)
# 705| getElse(): [VariableAccess] y
# 705| Type = [IntType] int
# 705| ValueCategory = prvalue(load)
# 705| getCondition().getFullyConverted(): [ParenthesisExpr] (...)
# 705| Type = [BoolType] bool
# 705| ValueCategory = prvalue
# 708| [TopLevelFunction] int CallMin(int, int)
# 708| <params>:
# 708| getParameter(0): [Parameter] x
# 708| Type = [IntType] int
# 708| getParameter(1): [Parameter] y
# 708| Type = [IntType] int
# 708| getEntryPoint(): [BlockStmt] { ... }
# 709| getStmt(0): [ReturnStmt] return ...
# 709| getExpr(): [FunctionCall] call to min
# 709| Type = [IntType] int
# 709| ValueCategory = prvalue
# 709| getArgument(0): [VariableAccess] x
# 709| Type = [IntType] int
# 709| ValueCategory = prvalue(load)
# 709| getArgument(1): [VariableAccess] y
# 709| Type = [IntType] int
# 709| ValueCategory = prvalue(load)
# 713| [CopyAssignmentOperator] Outer<long>& Outer<long>::operator=(Outer<long> const&)
# 713| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Outer<long> &
# 713| [MoveAssignmentOperator] Outer<long>& Outer<long>::operator=(Outer<long>&&)
# 713| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Outer<long> &&
# 715| [MemberFunction,TemplateFunction] T Outer<T>::Func<U, V>(U, V)
# 715| <params>:
# 715| getParameter(0): [Parameter] x
# 715| Type = [TemplateParameter] U
# 715| getParameter(1): [Parameter] y
# 715| Type = [TemplateParameter] V
# 715| getEntryPoint(): [BlockStmt] { ... }
# 716| getStmt(0): [ReturnStmt] return ...
# 716| getExpr(): [Literal] 0
# 716| Type = [TemplateParameter] T
# 716| Value = [Literal] 0
# 716| ValueCategory = prvalue
# 716| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 716| Type = [TemplateParameter] T
# 716| ValueCategory = prvalue(load)
# 715| [MemberFunction,TemplateFunction] long Outer<long>::Func<U, V>(U, V)
# 715| <params>:
# 715| getParameter(0): [Parameter] x
# 715| Type = [TemplateParameter] U
# 715| getParameter(1): [Parameter] y
# 715| Type = [TemplateParameter] V
# 715| [FunctionTemplateInstantiation,MemberFunction] long Outer<long>::Func<void*, char>(void*, char)
# 715| <params>:
# 715| getParameter(0): [Parameter] x
# 715| Type = [VoidPointerType] void *
# 715| getParameter(1): [Parameter] y
# 715| Type = [PlainCharType] char
# 715| getEntryPoint(): [BlockStmt] { ... }
# 716| getStmt(0): [ReturnStmt] return ...
# 716| getExpr(): [Literal] 0
# 716| Type = [LongType] long
# 716| Value = [Literal] 0
# 716| ValueCategory = prvalue
# 716| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 716| Type = [LongType] long
# 716| ValueCategory = prvalue(load)
# 720| [TopLevelFunction] double CallNestedTemplateFunc()
# 720| <params>:
# 720| getEntryPoint(): [BlockStmt] { ... }
# 721| getStmt(0): [ReturnStmt] return ...
# 721| getExpr(): [FunctionCall] call to Func
# 721| Type = [LongType] long
# 721| ValueCategory = prvalue
# 721| getArgument(0): [Literal] 0
# 721| Type = [NullPointerType] decltype(nullptr)
# 721| Value = [Literal] 0
# 721| ValueCategory = prvalue
# 721| getArgument(1): [CharLiteral] 111
# 721| Type = [PlainCharType] char
# 721| Value = [CharLiteral] 111
# 721| ValueCategory = prvalue
# 721| getArgument(0).getFullyConverted(): [CStyleCast] (void *)...
# 721| Conversion = [PointerConversion] pointer conversion
# 721| Type = [VoidPointerType] void *
# 721| Value = [CStyleCast] 0
# 721| ValueCategory = prvalue
# 721| getExpr().getFullyConverted(): [CStyleCast] (double)...
# 721| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 721| Type = [DoubleType] double
# 721| ValueCategory = prvalue
# 724| [TopLevelFunction] void TryCatch(bool)
# 724| <params>:
# 724| getParameter(0): [Parameter] b
# 724| Type = [BoolType] bool
# 724| getEntryPoint(): [BlockStmt] { ... }
# 725| getStmt(0): [TryStmt] try { ... }
# 725| getStmt(): [BlockStmt] { ... }
# 726| getStmt(0): [DeclStmt] declaration
# 726| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 726| Type = [IntType] int
# 726| getVariable().getInitializer(): [Initializer] initializer for x
# 726| getExpr(): [Literal] 5
# 726| Type = [IntType] int
# 726| Value = [Literal] 5
# 726| ValueCategory = prvalue
# 727| getStmt(1): [IfStmt] if (...) ...
# 727| getCondition(): [VariableAccess] b
# 727| Type = [BoolType] bool
# 727| ValueCategory = prvalue(load)
# 727| getThen(): [BlockStmt] { ... }
# 728| getStmt(0): [ExprStmt] ExprStmt
# 728| getExpr(): [ThrowExpr] throw ...
# 728| Type = [PointerType] const char *
# 728| ValueCategory = prvalue
# 728| getExpr(): string literal
# 728| Type = [ArrayType] const char[15]
# 728| Value = [StringLiteral] "string literal"
# 728| ValueCategory = lvalue
# 728| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 728| Type = [PointerType] const char *
# 728| ValueCategory = prvalue
# 730| getElse(): [IfStmt] if (...) ...
# 730| getCondition(): [LTExpr] ... < ...
# 730| Type = [BoolType] bool
# 730| ValueCategory = prvalue
# 730| getLesserOperand(): [VariableAccess] x
# 730| Type = [IntType] int
# 730| ValueCategory = prvalue(load)
# 730| getGreaterOperand(): [Literal] 2
# 730| Type = [IntType] int
# 730| Value = [Literal] 2
# 730| ValueCategory = prvalue
# 730| getThen(): [BlockStmt] { ... }
# 731| getStmt(0): [ExprStmt] ExprStmt
# 731| getExpr(): [AssignExpr] ... = ...
# 731| Type = [IntType] int
# 731| ValueCategory = lvalue
# 731| getLValue(): [VariableAccess] x
# 731| Type = [IntType] int
# 731| ValueCategory = lvalue
# 731| getRValue(): [ConditionalExpr] ... ? ... : ...
# 731| Type = [IntType] int
# 731| ValueCategory = prvalue
# 731| getCondition(): [VariableAccess] b
# 731| Type = [BoolType] bool
# 731| ValueCategory = prvalue(load)
# 731| getThen(): [Literal] 7
# 731| Type = [IntType] int
# 731| Value = [Literal] 7
# 731| ValueCategory = prvalue
# 731| getElse(): [ThrowExpr] throw ...
# 731| Type = [Struct] String
# 731| ValueCategory = prvalue
# 731| getExpr(): [ConstructorCall] call to String
# 731| Type = [VoidType] void
# 731| ValueCategory = prvalue
# 731| getArgument(0): String object
# 731| Type = [ArrayType] const char[14]
# 731| Value = [StringLiteral] "String object"
# 731| ValueCategory = lvalue
# 731| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 731| Type = [PointerType] const char *
# 731| ValueCategory = prvalue
# 733| getStmt(2): [ExprStmt] ExprStmt
# 733| getExpr(): [AssignExpr] ... = ...
# 733| Type = [IntType] int
# 733| ValueCategory = lvalue
# 733| getLValue(): [VariableAccess] x
# 733| Type = [IntType] int
# 733| ValueCategory = lvalue
# 733| getRValue(): [Literal] 7
# 733| Type = [IntType] int
# 733| Value = [Literal] 7
# 733| ValueCategory = prvalue
# 735| getChild(1): [Handler] <handler>
# 735| getBlock(): [CatchBlock] { ... }
# 736| getStmt(0): [ExprStmt] ExprStmt
# 736| getExpr(): [ThrowExpr] throw ...
# 736| Type = [Struct] String
# 736| ValueCategory = prvalue
# 736| getExpr(): [ConstructorCall] call to String
# 736| Type = [VoidType] void
# 736| ValueCategory = prvalue
# 736| getArgument(0): [VariableAccess] s
# 736| Type = [PointerType] const char *
# 736| ValueCategory = prvalue(load)
# 738| getChild(2): [Handler] <handler>
# 738| getBlock(): [CatchBlock] { ... }
# 740| getChild(3): [Handler] <handler>
# 740| getBlock(): [CatchAnyBlock] { ... }
# 741| getStmt(0): [ExprStmt] ExprStmt
# 741| getExpr(): [ReThrowExpr] re-throw exception
# 741| Type = [VoidType] void
# 741| ValueCategory = prvalue
# 743| getStmt(1): [ReturnStmt] return ...
# 745| [CopyAssignmentOperator] Base& Base::operator=(Base const&)
# 745| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Base &
#-----| getEntryPoint(): [BlockStmt] { ... }
#-----| getStmt(0): [ExprStmt] ExprStmt
# 745| getExpr(): [FunctionCall] call to operator=
# 745| Type = [LValueReferenceType] String &
# 745| ValueCategory = prvalue
# 745| getQualifier(): [AddressOfExpr] & ...
# 745| Type = [PointerType] String *
# 745| ValueCategory = prvalue
# 745| getOperand(): [PointerFieldAccess] base_s
# 745| Type = [Struct] String
# 745| ValueCategory = lvalue
# 745| getQualifier(): [ThisExpr] this
# 745| Type = [PointerType] Base *
# 745| ValueCategory = prvalue(load)
# 745| getArgument(0): [ReferenceFieldAccess] base_s
# 745| Type = [Struct] String
# 745| ValueCategory = lvalue
# 745| getQualifier(): [VariableAccess] (unnamed parameter 0)
# 745| Type = [LValueReferenceType] const Base &
# 745| ValueCategory = prvalue(load)
#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [SpecifiedType] const Base
#-----| ValueCategory = lvalue
#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] const String &
#-----| ValueCategory = prvalue
#-----| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [Struct] String
#-----| ValueCategory = lvalue
#-----| getStmt(1): [ReturnStmt] return ...
#-----| getExpr(): [PointerDereferenceExpr] * ...
#-----| Type = [Struct,VirtualBaseClass] Base
#-----| ValueCategory = lvalue
#-----| getOperand(): [ThisExpr] this
#-----| Type = [PointerType] Base *
#-----| ValueCategory = prvalue(load)
#-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] Base &
#-----| ValueCategory = prvalue
# 745| [CopyConstructor] void Base::Base(Base const&)
# 745| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Base &
# 745| <initializations>:
# 745| getInitializer(0): [ConstructorFieldInit] constructor init of field base_s
# 745| Type = [Struct] String
# 745| ValueCategory = prvalue
# 745| getExpr(): [ConstructorCall] call to String
# 745| Type = [VoidType] void
# 745| ValueCategory = prvalue
# 745| getEntryPoint(): [BlockStmt] { ... }
# 745| getStmt(0): [ReturnStmt] return ...
# 748| [Constructor] void Base::Base()
# 748| <params>:
# 748| <initializations>:
# 748| getInitializer(0): [ConstructorFieldInit] constructor init of field base_s
# 748| Type = [Struct] String
# 748| ValueCategory = prvalue
# 748| getExpr(): [ConstructorCall] call to String
# 748| Type = [VoidType] void
# 748| ValueCategory = prvalue
# 748| getEntryPoint(): [BlockStmt] { ... }
# 749| getStmt(0): [ReturnStmt] return ...
# 750| [Destructor] void Base::~Base()
# 750| <params>:
# 750| getEntryPoint(): [BlockStmt] { ... }
# 751| getStmt(0): [ReturnStmt] return ...
# 750| <destructions>:
# 751| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of base_s
# 751| Type = [Struct] String
# 751| ValueCategory = prvalue
# 751| getExpr(): [DestructorCall] call to ~String
# 751| Type = [VoidType] void
# 751| ValueCategory = prvalue
# 751| getQualifier(): [ImplicitThisFieldAccess] base_s
# 751| Type = [Struct] String
# 751| ValueCategory = lvalue
# 754| [CopyAssignmentOperator] Middle& Middle::operator=(Middle const&)
# 754| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Middle &
#-----| getEntryPoint(): [BlockStmt] { ... }
#-----| getStmt(0): [ExprStmt] ExprStmt
# 754| getExpr(): [FunctionCall] call to operator=
# 754| Type = [LValueReferenceType] Base &
# 754| ValueCategory = prvalue
# 754| getQualifier(): [ThisExpr] this
# 754| Type = [PointerType] Middle *
# 754| ValueCategory = prvalue(load)
# 754| getArgument(0): [PointerDereferenceExpr] * ...
# 754| Type = [SpecifiedType] const Base
# 754| ValueCategory = lvalue
# 754| getOperand(): [AddressOfExpr] & ...
# 754| Type = [PointerType] const Middle *
# 754| ValueCategory = prvalue
# 754| getOperand(): [VariableAccess] (unnamed parameter 0)
# 754| Type = [LValueReferenceType] const Middle &
# 754| ValueCategory = prvalue(load)
#-----| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [SpecifiedType] const Middle
#-----| ValueCategory = lvalue
#-----| getOperand().getFullyConverted(): [CStyleCast] (const Base *)...
#-----| Conversion = [BaseClassConversion] base class conversion
#-----| Type = [PointerType] const Base *
#-----| ValueCategory = prvalue
#-----| getQualifier().getFullyConverted(): [CStyleCast] (Base *)...
#-----| Conversion = [BaseClassConversion] base class conversion
#-----| Type = [PointerType] Base *
#-----| ValueCategory = prvalue
#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] const Base &
#-----| ValueCategory = prvalue
#-----| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [Struct,VirtualBaseClass] Base
#-----| ValueCategory = lvalue
#-----| getStmt(1): [ExprStmt] ExprStmt
# 754| getExpr(): [FunctionCall] call to operator=
# 754| Type = [LValueReferenceType] String &
# 754| ValueCategory = prvalue
# 754| getQualifier(): [AddressOfExpr] & ...
# 754| Type = [PointerType] String *
# 754| ValueCategory = prvalue
# 754| getOperand(): [PointerFieldAccess] middle_s
# 754| Type = [Struct] String
# 754| ValueCategory = lvalue
# 754| getQualifier(): [ThisExpr] this
# 754| Type = [PointerType] Middle *
# 754| ValueCategory = prvalue(load)
# 754| getArgument(0): [ReferenceFieldAccess] middle_s
# 754| Type = [Struct] String
# 754| ValueCategory = lvalue
# 754| getQualifier(): [VariableAccess] (unnamed parameter 0)
# 754| Type = [LValueReferenceType] const Middle &
# 754| ValueCategory = prvalue(load)
#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [SpecifiedType] const Middle
#-----| ValueCategory = lvalue
#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] const String &
#-----| ValueCategory = prvalue
#-----| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [Struct] String
#-----| ValueCategory = lvalue
#-----| getStmt(2): [ReturnStmt] return ...
#-----| getExpr(): [PointerDereferenceExpr] * ...
#-----| Type = [Struct] Middle
#-----| ValueCategory = lvalue
#-----| getOperand(): [ThisExpr] this
#-----| Type = [PointerType] Middle *
#-----| ValueCategory = prvalue(load)
#-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] Middle &
#-----| ValueCategory = prvalue
# 754| [CopyConstructor] void Middle::Middle(Middle const&)
# 754| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Middle &
# 757| [Constructor] void Middle::Middle()
# 757| <params>:
# 757| <initializations>:
# 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| Type = [Struct] String
# 757| ValueCategory = prvalue
# 757| getExpr(): [ConstructorCall] call to String
# 757| Type = [VoidType] void
# 757| ValueCategory = prvalue
# 757| getEntryPoint(): [BlockStmt] { ... }
# 758| getStmt(0): [ReturnStmt] return ...
# 759| [Destructor] void Middle::~Middle()
# 759| <params>:
# 759| getEntryPoint(): [BlockStmt] { ... }
# 760| getStmt(0): [ReturnStmt] return ...
# 759| <destructions>:
# 760| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of middle_s
# 760| Type = [Struct] String
# 760| ValueCategory = prvalue
# 760| getExpr(): [DestructorCall] call to ~String
# 760| Type = [VoidType] void
# 760| ValueCategory = prvalue
# 760| getQualifier(): [ImplicitThisFieldAccess] middle_s
# 760| Type = [Struct] String
# 760| ValueCategory = lvalue
# 760| getDestruction(1): [DestructorDirectDestruction] call to ~Base
# 760| Type = [VoidType] void
# 760| ValueCategory = prvalue
# 763| [CopyAssignmentOperator] Derived& Derived::operator=(Derived const&)
# 763| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Derived &
#-----| getEntryPoint(): [BlockStmt] { ... }
#-----| getStmt(0): [ExprStmt] ExprStmt
# 763| getExpr(): [FunctionCall] call to operator=
# 763| Type = [LValueReferenceType] Middle &
# 763| ValueCategory = prvalue
# 763| getQualifier(): [ThisExpr] this
# 763| Type = [PointerType] Derived *
# 763| ValueCategory = prvalue(load)
# 763| getArgument(0): [PointerDereferenceExpr] * ...
# 763| Type = [SpecifiedType] const Middle
# 763| ValueCategory = lvalue
# 763| getOperand(): [AddressOfExpr] & ...
# 763| Type = [PointerType] const Derived *
# 763| ValueCategory = prvalue
# 763| getOperand(): [VariableAccess] (unnamed parameter 0)
# 763| Type = [LValueReferenceType] const Derived &
# 763| ValueCategory = prvalue(load)
#-----| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [SpecifiedType] const Derived
#-----| ValueCategory = lvalue
#-----| getOperand().getFullyConverted(): [CStyleCast] (const Middle *)...
#-----| Conversion = [BaseClassConversion] base class conversion
#-----| Type = [PointerType] const Middle *
#-----| ValueCategory = prvalue
#-----| getQualifier().getFullyConverted(): [CStyleCast] (Middle *)...
#-----| Conversion = [BaseClassConversion] base class conversion
#-----| Type = [PointerType] Middle *
#-----| ValueCategory = prvalue
#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] const Middle &
#-----| ValueCategory = prvalue
#-----| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [Struct] Middle
#-----| ValueCategory = lvalue
#-----| getStmt(1): [ExprStmt] ExprStmt
# 763| getExpr(): [FunctionCall] call to operator=
# 763| Type = [LValueReferenceType] String &
# 763| ValueCategory = prvalue
# 763| getQualifier(): [AddressOfExpr] & ...
# 763| Type = [PointerType] String *
# 763| ValueCategory = prvalue
# 763| getOperand(): [PointerFieldAccess] derived_s
# 763| Type = [Struct] String
# 763| ValueCategory = lvalue
# 763| getQualifier(): [ThisExpr] this
# 763| Type = [PointerType] Derived *
# 763| ValueCategory = prvalue(load)
# 763| getArgument(0): [ReferenceFieldAccess] derived_s
# 763| Type = [Struct] String
# 763| ValueCategory = lvalue
# 763| getQualifier(): [VariableAccess] (unnamed parameter 0)
# 763| Type = [LValueReferenceType] const Derived &
# 763| ValueCategory = prvalue(load)
#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [SpecifiedType] const Derived
#-----| ValueCategory = lvalue
#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] const String &
#-----| ValueCategory = prvalue
#-----| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
#-----| Type = [Struct] String
#-----| ValueCategory = lvalue
#-----| getStmt(2): [ReturnStmt] return ...
#-----| getExpr(): [PointerDereferenceExpr] * ...
#-----| Type = [Struct] Derived
#-----| ValueCategory = lvalue
#-----| getOperand(): [ThisExpr] this
#-----| Type = [PointerType] Derived *
#-----| ValueCategory = prvalue(load)
#-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] Derived &
#-----| ValueCategory = prvalue
# 763| [CopyConstructor] void Derived::Derived(Derived const&)
# 763| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Derived &
# 766| [Constructor] void Derived::Derived()
# 766| <params>:
# 766| <initializations>:
# 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| Type = [Struct] String
# 766| ValueCategory = prvalue
# 766| getExpr(): [ConstructorCall] call to String
# 766| Type = [VoidType] void
# 766| ValueCategory = prvalue
# 766| getEntryPoint(): [BlockStmt] { ... }
# 767| getStmt(0): [ReturnStmt] return ...
# 768| [Destructor] void Derived::~Derived()
# 768| <params>:
# 768| getEntryPoint(): [BlockStmt] { ... }
# 769| getStmt(0): [ReturnStmt] return ...
# 768| <destructions>:
# 769| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of derived_s
# 769| Type = [Struct] String
# 769| ValueCategory = prvalue
# 769| getExpr(): [DestructorCall] call to ~String
# 769| Type = [VoidType] void
# 769| ValueCategory = prvalue
# 769| getQualifier(): [ImplicitThisFieldAccess] derived_s
# 769| Type = [Struct] String
# 769| ValueCategory = lvalue
# 769| getDestruction(1): [DestructorDirectDestruction] call to ~Middle
# 769| Type = [VoidType] void
# 769| ValueCategory = prvalue
# 772| [CopyAssignmentOperator] MiddleVB1& MiddleVB1::operator=(MiddleVB1 const&)
# 772| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const MiddleVB1 &
# 772| [CopyConstructor] void MiddleVB1::MiddleVB1(MiddleVB1 const&)
# 772| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const MiddleVB1 &
# 775| [Constructor] void MiddleVB1::MiddleVB1()
# 775| <params>:
# 775| <initializations>:
# 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| Type = [Struct] String
# 775| ValueCategory = prvalue
# 775| getExpr(): [ConstructorCall] call to String
# 775| Type = [VoidType] void
# 775| ValueCategory = prvalue
# 775| getEntryPoint(): [BlockStmt] { ... }
# 776| getStmt(0): [ReturnStmt] return ...
# 777| [Destructor] void MiddleVB1::~MiddleVB1()
# 777| <params>:
# 777| getEntryPoint(): [BlockStmt] { ... }
# 778| getStmt(0): [ReturnStmt] return ...
# 777| <destructions>:
# 778| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of middlevb1_s
# 778| Type = [Struct] String
# 778| ValueCategory = prvalue
# 778| getExpr(): [DestructorCall] call to ~String
# 778| Type = [VoidType] void
# 778| ValueCategory = prvalue
# 778| getQualifier(): [ImplicitThisFieldAccess] middlevb1_s
# 778| Type = [Struct] String
# 778| ValueCategory = lvalue
# 778| getDestruction(1): [DestructorVirtualDestruction] call to ~Base
# 778| Type = [VoidType] void
# 778| ValueCategory = prvalue
# 781| [CopyAssignmentOperator] MiddleVB2& MiddleVB2::operator=(MiddleVB2 const&)
# 781| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const MiddleVB2 &
# 781| [CopyConstructor] void MiddleVB2::MiddleVB2(MiddleVB2 const&)
# 781| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const MiddleVB2 &
# 784| [Constructor] void MiddleVB2::MiddleVB2()
# 784| <params>:
# 784| <initializations>:
# 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| Type = [Struct] String
# 784| ValueCategory = prvalue
# 784| getExpr(): [ConstructorCall] call to String
# 784| Type = [VoidType] void
# 784| ValueCategory = prvalue
# 784| getEntryPoint(): [BlockStmt] { ... }
# 785| getStmt(0): [ReturnStmt] return ...
# 786| [Destructor] void MiddleVB2::~MiddleVB2()
# 786| <params>:
# 786| getEntryPoint(): [BlockStmt] { ... }
# 787| getStmt(0): [ReturnStmt] return ...
# 786| <destructions>:
# 787| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of middlevb2_s
# 787| Type = [Struct] String
# 787| ValueCategory = prvalue
# 787| getExpr(): [DestructorCall] call to ~String
# 787| Type = [VoidType] void
# 787| ValueCategory = prvalue
# 787| getQualifier(): [ImplicitThisFieldAccess] middlevb2_s
# 787| Type = [Struct] String
# 787| ValueCategory = lvalue
# 787| getDestruction(1): [DestructorVirtualDestruction] call to ~Base
# 787| Type = [VoidType] void
# 787| ValueCategory = prvalue
# 790| [CopyAssignmentOperator] DerivedVB& DerivedVB::operator=(DerivedVB const&)
# 790| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const DerivedVB &
# 790| [CopyConstructor] void DerivedVB::DerivedVB(DerivedVB const&)
# 790| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const DerivedVB &
# 793| [Constructor] void DerivedVB::DerivedVB()
# 793| <params>:
# 793| <initializations>:
# 793| getInitializer(0): [ConstructorVirtualInit] call to Base
# 793| Type = [VoidType] void
# 793| ValueCategory = prvalue
# 793| getInitializer(1): [ConstructorDirectInit] call to MiddleVB1
# 793| Type = [VoidType] void
# 793| ValueCategory = prvalue
# 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| Type = [Struct] String
# 793| ValueCategory = prvalue
# 793| getExpr(): [ConstructorCall] call to String
# 793| Type = [VoidType] void
# 793| ValueCategory = prvalue
# 793| getEntryPoint(): [BlockStmt] { ... }
# 794| getStmt(0): [ReturnStmt] return ...
# 795| [Destructor] void DerivedVB::~DerivedVB()
# 795| <params>:
# 795| getEntryPoint(): [BlockStmt] { ... }
# 796| getStmt(0): [ReturnStmt] return ...
# 795| <destructions>:
# 796| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of derivedvb_s
# 796| Type = [Struct] String
# 796| ValueCategory = prvalue
# 796| getExpr(): [DestructorCall] call to ~String
# 796| Type = [VoidType] void
# 796| ValueCategory = prvalue
# 796| getQualifier(): [ImplicitThisFieldAccess] derivedvb_s
# 796| Type = [Struct] String
# 796| ValueCategory = lvalue
# 796| getDestruction(1): [DestructorDirectDestruction] call to ~MiddleVB2
# 796| Type = [VoidType] void
# 796| ValueCategory = prvalue
# 796| getDestruction(2): [DestructorDirectDestruction] call to ~MiddleVB1
# 796| Type = [VoidType] void
# 796| ValueCategory = prvalue
# 796| getDestruction(3): [DestructorVirtualDestruction] call to ~Base
# 796| Type = [VoidType] void
# 796| ValueCategory = prvalue
# 799| [TopLevelFunction] void HierarchyConversions()
# 799| <params>:
# 799| getEntryPoint(): [BlockStmt] { ... }
# 800| getStmt(0): [DeclStmt] declaration
# 800| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 800| Type = [Struct,VirtualBaseClass] Base
# 800| getVariable().getInitializer(): [Initializer] initializer for b
# 800| getExpr(): [ConstructorCall] call to Base
# 800| Type = [VoidType] void
# 800| ValueCategory = prvalue
# 801| getStmt(1): [DeclStmt] declaration
# 801| getDeclarationEntry(0): [VariableDeclarationEntry] definition of m
# 801| Type = [Struct] Middle
# 801| getVariable().getInitializer(): [Initializer] initializer for m
# 801| getExpr(): [ConstructorCall] call to Middle
# 801| Type = [VoidType] void
# 801| ValueCategory = prvalue
# 802| getStmt(2): [DeclStmt] declaration
# 802| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 802| Type = [Struct] Derived
# 802| getVariable().getInitializer(): [Initializer] initializer for d
# 802| getExpr(): [ConstructorCall] call to Derived
# 802| Type = [VoidType] void
# 802| ValueCategory = prvalue
# 804| getStmt(3): [DeclStmt] declaration
# 804| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pb
# 804| Type = [PointerType] Base *
# 804| getVariable().getInitializer(): [Initializer] initializer for pb
# 804| getExpr(): [AddressOfExpr] & ...
# 804| Type = [PointerType] Base *
# 804| ValueCategory = prvalue
# 804| getOperand(): [VariableAccess] b
# 804| Type = [Struct,VirtualBaseClass] Base
# 804| ValueCategory = lvalue
# 805| getStmt(4): [DeclStmt] declaration
# 805| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pm
# 805| Type = [PointerType] Middle *
# 805| getVariable().getInitializer(): [Initializer] initializer for pm
# 805| getExpr(): [AddressOfExpr] & ...
# 805| Type = [PointerType] Middle *
# 805| ValueCategory = prvalue
# 805| getOperand(): [VariableAccess] m
# 805| Type = [Struct] Middle
# 805| ValueCategory = lvalue
# 806| getStmt(5): [DeclStmt] declaration
# 806| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pd
# 806| Type = [PointerType] Derived *
# 806| getVariable().getInitializer(): [Initializer] initializer for pd
# 806| getExpr(): [AddressOfExpr] & ...
# 806| Type = [PointerType] Derived *
# 806| ValueCategory = prvalue
# 806| getOperand(): [VariableAccess] d
# 806| Type = [Struct] Derived
# 806| ValueCategory = lvalue
# 808| getStmt(6): [ExprStmt] ExprStmt
# 808| getExpr(): [FunctionCall] call to operator=
# 808| Type = [LValueReferenceType] Base &
# 808| ValueCategory = prvalue
# 808| getQualifier(): [VariableAccess] b
# 808| Type = [Struct,VirtualBaseClass] Base
# 808| ValueCategory = lvalue
# 808| getArgument(0): [VariableAccess] m
# 808| Type = [Struct] Middle
# 808| ValueCategory = lvalue
# 808| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 808| Type = [LValueReferenceType] const Base &
# 808| ValueCategory = prvalue
# 808| getExpr(): [CStyleCast] (const Base)...
# 808| Conversion = [BaseClassConversion] base class conversion
# 808| Type = [SpecifiedType] const Base
# 808| ValueCategory = lvalue
# 808| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 808| Type = [Struct,VirtualBaseClass] Base
# 808| ValueCategory = lvalue
# 809| getStmt(7): [ExprStmt] ExprStmt
# 809| getExpr(): [FunctionCall] call to operator=
# 809| Type = [LValueReferenceType] Base &
# 809| ValueCategory = prvalue
# 809| getQualifier(): [VariableAccess] b
# 809| Type = [Struct,VirtualBaseClass] Base
# 809| ValueCategory = lvalue
# 809| getArgument(0): [ConstructorCall] call to Base
# 809| Type = [VoidType] void
# 809| ValueCategory = prvalue
# 809| getArgument(0): [VariableAccess] m
# 809| Type = [Struct] Middle
# 809| ValueCategory = lvalue
# 809| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 809| Type = [LValueReferenceType] const Base &
# 809| ValueCategory = prvalue
# 809| getExpr(): [CStyleCast] (const Base)...
# 809| Conversion = [BaseClassConversion] base class conversion
# 809| Type = [SpecifiedType] const Base
# 809| ValueCategory = lvalue
# 809| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 809| Type = [LValueReferenceType] const Base &
# 809| ValueCategory = prvalue
# 809| getExpr(): [CStyleCast] (const Base)...
# 809| Conversion = [GlvalueConversion] glvalue conversion
# 809| Type = [SpecifiedType] const Base
# 809| ValueCategory = lvalue
# 809| getExpr(): [TemporaryObjectExpr] temporary object
# 809| Type = [Struct,VirtualBaseClass] Base
# 809| ValueCategory = lvalue
# 809| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 809| Type = [Struct,VirtualBaseClass] Base
# 809| ValueCategory = lvalue
# 810| getStmt(8): [ExprStmt] ExprStmt
# 810| getExpr(): [FunctionCall] call to operator=
# 810| Type = [LValueReferenceType] Base &
# 810| ValueCategory = prvalue
# 810| getQualifier(): [VariableAccess] b
# 810| Type = [Struct,VirtualBaseClass] Base
# 810| ValueCategory = lvalue
# 810| getArgument(0): [ConstructorCall] call to Base
# 810| Type = [VoidType] void
# 810| ValueCategory = prvalue
# 810| getArgument(0): [VariableAccess] m
# 810| Type = [Struct] Middle
# 810| ValueCategory = lvalue
# 810| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 810| Type = [LValueReferenceType] const Base &
# 810| ValueCategory = prvalue
# 810| getExpr(): [CStyleCast] (const Base)...
# 810| Conversion = [BaseClassConversion] base class conversion
# 810| Type = [SpecifiedType] const Base
# 810| ValueCategory = lvalue
# 810| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 810| Type = [LValueReferenceType] const Base &
# 810| ValueCategory = prvalue
# 810| getExpr(): [CStyleCast] (const Base)...
# 810| Conversion = [GlvalueConversion] glvalue conversion
# 810| Type = [SpecifiedType] const Base
# 810| ValueCategory = lvalue
# 810| getExpr(): [TemporaryObjectExpr] temporary object
# 810| Type = [Struct,VirtualBaseClass] Base
# 810| ValueCategory = lvalue
# 810| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 810| Type = [Struct,VirtualBaseClass] Base
# 810| ValueCategory = lvalue
# 811| getStmt(9): [ExprStmt] ExprStmt
# 811| getExpr(): [AssignExpr] ... = ...
# 811| Type = [PointerType] Base *
# 811| ValueCategory = lvalue
# 811| getLValue(): [VariableAccess] pb
# 811| Type = [PointerType] Base *
# 811| ValueCategory = lvalue
# 811| getRValue(): [VariableAccess] pm
# 811| Type = [PointerType] Middle *
# 811| ValueCategory = prvalue(load)
# 811| getRValue().getFullyConverted(): [CStyleCast] (Base *)...
# 811| Conversion = [BaseClassConversion] base class conversion
# 811| Type = [PointerType] Base *
# 811| ValueCategory = prvalue
# 812| getStmt(10): [ExprStmt] ExprStmt
# 812| getExpr(): [AssignExpr] ... = ...
# 812| Type = [PointerType] Base *
# 812| ValueCategory = lvalue
# 812| getLValue(): [VariableAccess] pb
# 812| Type = [PointerType] Base *
# 812| ValueCategory = lvalue
# 812| getRValue(): [VariableAccess] pm
# 812| Type = [PointerType] Middle *
# 812| ValueCategory = prvalue(load)
# 812| getRValue().getFullyConverted(): [CStyleCast] (Base *)...
# 812| Conversion = [BaseClassConversion] base class conversion
# 812| Type = [PointerType] Base *
# 812| ValueCategory = prvalue
# 813| getStmt(11): [ExprStmt] ExprStmt
# 813| getExpr(): [AssignExpr] ... = ...
# 813| Type = [PointerType] Base *
# 813| ValueCategory = lvalue
# 813| getLValue(): [VariableAccess] pb
# 813| Type = [PointerType] Base *
# 813| ValueCategory = lvalue
# 813| getRValue(): [VariableAccess] pm
# 813| Type = [PointerType] Middle *
# 813| ValueCategory = prvalue(load)
# 813| getRValue().getFullyConverted(): [StaticCast] static_cast<Base *>...
# 813| Conversion = [BaseClassConversion] base class conversion
# 813| Type = [PointerType] Base *
# 813| ValueCategory = prvalue
# 814| getStmt(12): [ExprStmt] ExprStmt
# 814| getExpr(): [AssignExpr] ... = ...
# 814| Type = [PointerType] Base *
# 814| ValueCategory = lvalue
# 814| getLValue(): [VariableAccess] pb
# 814| Type = [PointerType] Base *
# 814| ValueCategory = lvalue
# 814| getRValue(): [VariableAccess] pm
# 814| Type = [PointerType] Middle *
# 814| ValueCategory = prvalue(load)
# 814| getRValue().getFullyConverted(): [ReinterpretCast] reinterpret_cast<Base *>...
# 814| Conversion = [PointerConversion] pointer conversion
# 814| Type = [PointerType] Base *
# 814| ValueCategory = prvalue
# 816| getStmt(13): [ExprStmt] ExprStmt
# 816| getExpr(): [FunctionCall] call to operator=
# 816| Type = [LValueReferenceType] Middle &
# 816| ValueCategory = prvalue
# 816| getQualifier(): [VariableAccess] m
# 816| Type = [Struct] Middle
# 816| ValueCategory = lvalue
# 816| getArgument(0): [VariableAccess] b
# 816| Type = [Struct,VirtualBaseClass] Base
# 816| ValueCategory = lvalue
# 816| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 816| Type = [LValueReferenceType] const Middle &
# 816| ValueCategory = prvalue
# 816| getExpr(): [CStyleCast] (const Middle)...
# 816| Conversion = [GlvalueConversion] glvalue conversion
# 816| Type = [SpecifiedType] const Middle
# 816| ValueCategory = lvalue
# 816| getExpr(): [CStyleCast] (Middle)...
# 816| Conversion = [DerivedClassConversion] derived class conversion
# 816| Type = [Struct] Middle
# 816| ValueCategory = lvalue
# 816| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 816| Type = [Struct] Middle
# 816| ValueCategory = lvalue
# 817| getStmt(14): [ExprStmt] ExprStmt
# 817| getExpr(): [FunctionCall] call to operator=
# 817| Type = [LValueReferenceType] Middle &
# 817| ValueCategory = prvalue
# 817| getQualifier(): [VariableAccess] m
# 817| Type = [Struct] Middle
# 817| ValueCategory = lvalue
# 817| getArgument(0): [VariableAccess] b
# 817| Type = [Struct,VirtualBaseClass] Base
# 817| ValueCategory = lvalue
# 817| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 817| Type = [LValueReferenceType] const Middle &
# 817| ValueCategory = prvalue
# 817| getExpr(): [CStyleCast] (const Middle)...
# 817| Conversion = [GlvalueConversion] glvalue conversion
# 817| Type = [SpecifiedType] const Middle
# 817| ValueCategory = lvalue
# 817| getExpr(): [StaticCast] static_cast<Middle>...
# 817| Conversion = [DerivedClassConversion] derived class conversion
# 817| Type = [Struct] Middle
# 817| ValueCategory = lvalue
# 817| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 817| Type = [Struct] Middle
# 817| ValueCategory = lvalue
# 818| getStmt(15): [ExprStmt] ExprStmt
# 818| getExpr(): [AssignExpr] ... = ...
# 818| Type = [PointerType] Middle *
# 818| ValueCategory = lvalue
# 818| getLValue(): [VariableAccess] pm
# 818| Type = [PointerType] Middle *
# 818| ValueCategory = lvalue
# 818| getRValue(): [VariableAccess] pb
# 818| Type = [PointerType] Base *
# 818| ValueCategory = prvalue(load)
# 818| getRValue().getFullyConverted(): [CStyleCast] (Middle *)...
# 818| Conversion = [DerivedClassConversion] derived class conversion
# 818| Type = [PointerType] Middle *
# 818| ValueCategory = prvalue
# 819| getStmt(16): [ExprStmt] ExprStmt
# 819| getExpr(): [AssignExpr] ... = ...
# 819| Type = [PointerType] Middle *
# 819| ValueCategory = lvalue
# 819| getLValue(): [VariableAccess] pm
# 819| Type = [PointerType] Middle *
# 819| ValueCategory = lvalue
# 819| getRValue(): [VariableAccess] pb
# 819| Type = [PointerType] Base *
# 819| ValueCategory = prvalue(load)
# 819| getRValue().getFullyConverted(): [StaticCast] static_cast<Middle *>...
# 819| Conversion = [DerivedClassConversion] derived class conversion
# 819| Type = [PointerType] Middle *
# 819| ValueCategory = prvalue
# 820| getStmt(17): [ExprStmt] ExprStmt
# 820| getExpr(): [AssignExpr] ... = ...
# 820| Type = [PointerType] Middle *
# 820| ValueCategory = lvalue
# 820| getLValue(): [VariableAccess] pm
# 820| Type = [PointerType] Middle *
# 820| ValueCategory = lvalue
# 820| getRValue(): [VariableAccess] pb
# 820| Type = [PointerType] Base *
# 820| ValueCategory = prvalue(load)
# 820| getRValue().getFullyConverted(): [ReinterpretCast] reinterpret_cast<Middle *>...
# 820| Conversion = [PointerConversion] pointer conversion
# 820| Type = [PointerType] Middle *
# 820| ValueCategory = prvalue
# 822| getStmt(18): [ExprStmt] ExprStmt
# 822| getExpr(): [FunctionCall] call to operator=
# 822| Type = [LValueReferenceType] Base &
# 822| ValueCategory = prvalue
# 822| getQualifier(): [VariableAccess] b
# 822| Type = [Struct,VirtualBaseClass] Base
# 822| ValueCategory = lvalue
# 822| getArgument(0): [VariableAccess] d
# 822| Type = [Struct] Derived
# 822| ValueCategory = lvalue
# 822| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 822| Type = [LValueReferenceType] const Base &
# 822| ValueCategory = prvalue
# 822| getExpr(): [CStyleCast] (const Base)...
# 822| Conversion = [BaseClassConversion] base class conversion
# 822| Type = [SpecifiedType] const Base
# 822| ValueCategory = lvalue
# 822| getExpr(): [CStyleCast] (const Middle)...
# 822| Conversion = [BaseClassConversion] base class conversion
# 822| Type = [SpecifiedType] const Middle
# 822| ValueCategory = lvalue
# 822| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 822| Type = [Struct,VirtualBaseClass] Base
# 822| ValueCategory = lvalue
# 823| getStmt(19): [ExprStmt] ExprStmt
# 823| getExpr(): [FunctionCall] call to operator=
# 823| Type = [LValueReferenceType] Base &
# 823| ValueCategory = prvalue
# 823| getQualifier(): [VariableAccess] b
# 823| Type = [Struct,VirtualBaseClass] Base
# 823| ValueCategory = lvalue
# 823| getArgument(0): [ConstructorCall] call to Base
# 823| Type = [VoidType] void
# 823| ValueCategory = prvalue
# 823| getArgument(0): [VariableAccess] d
# 823| Type = [Struct] Derived
# 823| ValueCategory = lvalue
# 823| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 823| Type = [LValueReferenceType] const Base &
# 823| ValueCategory = prvalue
# 823| getExpr(): [CStyleCast] (const Base)...
# 823| Conversion = [BaseClassConversion] base class conversion
# 823| Type = [SpecifiedType] const Base
# 823| ValueCategory = lvalue
# 823| getExpr(): [CStyleCast] (const Middle)...
# 823| Conversion = [BaseClassConversion] base class conversion
# 823| Type = [SpecifiedType] const Middle
# 823| ValueCategory = lvalue
# 823| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 823| Type = [LValueReferenceType] const Base &
# 823| ValueCategory = prvalue
# 823| getExpr(): [CStyleCast] (const Base)...
# 823| Conversion = [GlvalueConversion] glvalue conversion
# 823| Type = [SpecifiedType] const Base
# 823| ValueCategory = lvalue
# 823| getExpr(): [TemporaryObjectExpr] temporary object
# 823| Type = [Struct,VirtualBaseClass] Base
# 823| ValueCategory = lvalue
# 823| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 823| Type = [Struct,VirtualBaseClass] Base
# 823| ValueCategory = lvalue
# 824| getStmt(20): [ExprStmt] ExprStmt
# 824| getExpr(): [FunctionCall] call to operator=
# 824| Type = [LValueReferenceType] Base &
# 824| ValueCategory = prvalue
# 824| getQualifier(): [VariableAccess] b
# 824| Type = [Struct,VirtualBaseClass] Base
# 824| ValueCategory = lvalue
# 824| getArgument(0): [ConstructorCall] call to Base
# 824| Type = [VoidType] void
# 824| ValueCategory = prvalue
# 824| getArgument(0): [VariableAccess] d
# 824| Type = [Struct] Derived
# 824| ValueCategory = lvalue
# 824| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 824| Type = [LValueReferenceType] const Base &
# 824| ValueCategory = prvalue
# 824| getExpr(): [CStyleCast] (const Base)...
# 824| Conversion = [BaseClassConversion] base class conversion
# 824| Type = [SpecifiedType] const Base
# 824| ValueCategory = lvalue
# 824| getExpr(): [CStyleCast] (const Middle)...
# 824| Conversion = [BaseClassConversion] base class conversion
# 824| Type = [SpecifiedType] const Middle
# 824| ValueCategory = lvalue
# 824| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 824| Type = [LValueReferenceType] const Base &
# 824| ValueCategory = prvalue
# 824| getExpr(): [CStyleCast] (const Base)...
# 824| Conversion = [GlvalueConversion] glvalue conversion
# 824| Type = [SpecifiedType] const Base
# 824| ValueCategory = lvalue
# 824| getExpr(): [TemporaryObjectExpr] temporary object
# 824| Type = [Struct,VirtualBaseClass] Base
# 824| ValueCategory = lvalue
# 824| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 824| Type = [Struct,VirtualBaseClass] Base
# 824| ValueCategory = lvalue
# 825| getStmt(21): [ExprStmt] ExprStmt
# 825| getExpr(): [AssignExpr] ... = ...
# 825| Type = [PointerType] Base *
# 825| ValueCategory = lvalue
# 825| getLValue(): [VariableAccess] pb
# 825| Type = [PointerType] Base *
# 825| ValueCategory = lvalue
# 825| getRValue(): [VariableAccess] pd
# 825| Type = [PointerType] Derived *
# 825| ValueCategory = prvalue(load)
# 825| getRValue().getFullyConverted(): [CStyleCast] (Base *)...
# 825| Conversion = [BaseClassConversion] base class conversion
# 825| Type = [PointerType] Base *
# 825| ValueCategory = prvalue
# 825| getExpr(): [CStyleCast] (Middle *)...
# 825| Conversion = [BaseClassConversion] base class conversion
# 825| Type = [PointerType] Middle *
# 825| ValueCategory = prvalue
# 826| getStmt(22): [ExprStmt] ExprStmt
# 826| getExpr(): [AssignExpr] ... = ...
# 826| Type = [PointerType] Base *
# 826| ValueCategory = lvalue
# 826| getLValue(): [VariableAccess] pb
# 826| Type = [PointerType] Base *
# 826| ValueCategory = lvalue
# 826| getRValue(): [VariableAccess] pd
# 826| Type = [PointerType] Derived *
# 826| ValueCategory = prvalue(load)
# 826| getRValue().getFullyConverted(): [CStyleCast] (Base *)...
# 826| Conversion = [BaseClassConversion] base class conversion
# 826| Type = [PointerType] Base *
# 826| ValueCategory = prvalue
# 826| getExpr(): [CStyleCast] (Middle *)...
# 826| Conversion = [BaseClassConversion] base class conversion
# 826| Type = [PointerType] Middle *
# 826| ValueCategory = prvalue
# 827| getStmt(23): [ExprStmt] ExprStmt
# 827| getExpr(): [AssignExpr] ... = ...
# 827| Type = [PointerType] Base *
# 827| ValueCategory = lvalue
# 827| getLValue(): [VariableAccess] pb
# 827| Type = [PointerType] Base *
# 827| ValueCategory = lvalue
# 827| getRValue(): [VariableAccess] pd
# 827| Type = [PointerType] Derived *
# 827| ValueCategory = prvalue(load)
# 827| getRValue().getFullyConverted(): [StaticCast] static_cast<Base *>...
# 827| Conversion = [BaseClassConversion] base class conversion
# 827| Type = [PointerType] Base *
# 827| ValueCategory = prvalue
# 827| getExpr(): [CStyleCast] (Middle *)...
# 827| Conversion = [BaseClassConversion] base class conversion
# 827| Type = [PointerType] Middle *
# 827| ValueCategory = prvalue
# 828| getStmt(24): [ExprStmt] ExprStmt
# 828| getExpr(): [AssignExpr] ... = ...
# 828| Type = [PointerType] Base *
# 828| ValueCategory = lvalue
# 828| getLValue(): [VariableAccess] pb
# 828| Type = [PointerType] Base *
# 828| ValueCategory = lvalue
# 828| getRValue(): [VariableAccess] pd
# 828| Type = [PointerType] Derived *
# 828| ValueCategory = prvalue(load)
# 828| getRValue().getFullyConverted(): [ReinterpretCast] reinterpret_cast<Base *>...
# 828| Conversion = [PointerConversion] pointer conversion
# 828| Type = [PointerType] Base *
# 828| ValueCategory = prvalue
# 830| getStmt(25): [ExprStmt] ExprStmt
# 830| getExpr(): [FunctionCall] call to operator=
# 830| Type = [LValueReferenceType] Derived &
# 830| ValueCategory = prvalue
# 830| getQualifier(): [VariableAccess] d
# 830| Type = [Struct] Derived
# 830| ValueCategory = lvalue
# 830| getArgument(0): [VariableAccess] b
# 830| Type = [Struct,VirtualBaseClass] Base
# 830| ValueCategory = lvalue
# 830| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 830| Type = [LValueReferenceType] const Derived &
# 830| ValueCategory = prvalue
# 830| getExpr(): [CStyleCast] (const Derived)...
# 830| Conversion = [GlvalueConversion] glvalue conversion
# 830| Type = [SpecifiedType] const Derived
# 830| ValueCategory = lvalue
# 830| getExpr(): [CStyleCast] (Derived)...
# 830| Conversion = [DerivedClassConversion] derived class conversion
# 830| Type = [Struct] Derived
# 830| ValueCategory = lvalue
# 830| getExpr(): [CStyleCast] (Middle)...
# 830| Conversion = [DerivedClassConversion] derived class conversion
# 830| Type = [Struct] Middle
# 830| ValueCategory = lvalue
# 830| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 830| Type = [Struct] Derived
# 830| ValueCategory = lvalue
# 831| getStmt(26): [ExprStmt] ExprStmt
# 831| getExpr(): [FunctionCall] call to operator=
# 831| Type = [LValueReferenceType] Derived &
# 831| ValueCategory = prvalue
# 831| getQualifier(): [VariableAccess] d
# 831| Type = [Struct] Derived
# 831| ValueCategory = lvalue
# 831| getArgument(0): [VariableAccess] b
# 831| Type = [Struct,VirtualBaseClass] Base
# 831| ValueCategory = lvalue
# 831| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 831| Type = [LValueReferenceType] const Derived &
# 831| ValueCategory = prvalue
# 831| getExpr(): [CStyleCast] (const Derived)...
# 831| Conversion = [GlvalueConversion] glvalue conversion
# 831| Type = [SpecifiedType] const Derived
# 831| ValueCategory = lvalue
# 831| getExpr(): [StaticCast] static_cast<Derived>...
# 831| Conversion = [DerivedClassConversion] derived class conversion
# 831| Type = [Struct] Derived
# 831| ValueCategory = lvalue
# 831| getExpr(): [CStyleCast] (Middle)...
# 831| Conversion = [DerivedClassConversion] derived class conversion
# 831| Type = [Struct] Middle
# 831| ValueCategory = lvalue
# 831| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 831| Type = [Struct] Derived
# 831| ValueCategory = lvalue
# 832| getStmt(27): [ExprStmt] ExprStmt
# 832| getExpr(): [AssignExpr] ... = ...
# 832| Type = [PointerType] Derived *
# 832| ValueCategory = lvalue
# 832| getLValue(): [VariableAccess] pd
# 832| Type = [PointerType] Derived *
# 832| ValueCategory = lvalue
# 832| getRValue(): [VariableAccess] pb
# 832| Type = [PointerType] Base *
# 832| ValueCategory = prvalue(load)
# 832| getRValue().getFullyConverted(): [CStyleCast] (Derived *)...
# 832| Conversion = [DerivedClassConversion] derived class conversion
# 832| Type = [PointerType] Derived *
# 832| ValueCategory = prvalue
# 832| getExpr(): [CStyleCast] (Middle *)...
# 832| Conversion = [DerivedClassConversion] derived class conversion
# 832| Type = [PointerType] Middle *
# 832| ValueCategory = prvalue
# 833| getStmt(28): [ExprStmt] ExprStmt
# 833| getExpr(): [AssignExpr] ... = ...
# 833| Type = [PointerType] Derived *
# 833| ValueCategory = lvalue
# 833| getLValue(): [VariableAccess] pd
# 833| Type = [PointerType] Derived *
# 833| ValueCategory = lvalue
# 833| getRValue(): [VariableAccess] pb
# 833| Type = [PointerType] Base *
# 833| ValueCategory = prvalue(load)
# 833| getRValue().getFullyConverted(): [StaticCast] static_cast<Derived *>...
# 833| Conversion = [DerivedClassConversion] derived class conversion
# 833| Type = [PointerType] Derived *
# 833| ValueCategory = prvalue
# 833| getExpr(): [CStyleCast] (Middle *)...
# 833| Conversion = [DerivedClassConversion] derived class conversion
# 833| Type = [PointerType] Middle *
# 833| ValueCategory = prvalue
# 834| getStmt(29): [ExprStmt] ExprStmt
# 834| getExpr(): [AssignExpr] ... = ...
# 834| Type = [PointerType] Derived *
# 834| ValueCategory = lvalue
# 834| getLValue(): [VariableAccess] pd
# 834| Type = [PointerType] Derived *
# 834| ValueCategory = lvalue
# 834| getRValue(): [VariableAccess] pb
# 834| Type = [PointerType] Base *
# 834| ValueCategory = prvalue(load)
# 834| getRValue().getFullyConverted(): [ReinterpretCast] reinterpret_cast<Derived *>...
# 834| Conversion = [PointerConversion] pointer conversion
# 834| Type = [PointerType] Derived *
# 834| ValueCategory = prvalue
# 836| getStmt(30): [DeclStmt] declaration
# 836| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pmv
# 836| Type = [PointerType] MiddleVB1 *
# 836| getVariable().getInitializer(): [Initializer] initializer for pmv
# 836| getExpr(): [Literal] 0
# 836| Type = [NullPointerType] decltype(nullptr)
# 836| Value = [Literal] 0
# 836| ValueCategory = prvalue
# 836| getExpr().getFullyConverted(): [CStyleCast] (MiddleVB1 *)...
# 836| Conversion = [PointerConversion] pointer conversion
# 836| Type = [PointerType] MiddleVB1 *
# 836| Value = [CStyleCast] 0
# 836| ValueCategory = prvalue
# 837| getStmt(31): [DeclStmt] declaration
# 837| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pdv
# 837| Type = [PointerType] DerivedVB *
# 837| getVariable().getInitializer(): [Initializer] initializer for pdv
# 837| getExpr(): [Literal] 0
# 837| Type = [NullPointerType] decltype(nullptr)
# 837| Value = [Literal] 0
# 837| ValueCategory = prvalue
# 837| getExpr().getFullyConverted(): [CStyleCast] (DerivedVB *)...
# 837| Conversion = [PointerConversion] pointer conversion
# 837| Type = [PointerType] DerivedVB *
# 837| Value = [CStyleCast] 0
# 837| ValueCategory = prvalue
# 838| getStmt(32): [ExprStmt] ExprStmt
# 838| getExpr(): [AssignExpr] ... = ...
# 838| Type = [PointerType] Base *
# 838| ValueCategory = lvalue
# 838| getLValue(): [VariableAccess] pb
# 838| Type = [PointerType] Base *
# 838| ValueCategory = lvalue
# 838| getRValue(): [VariableAccess] pmv
# 838| Type = [PointerType] MiddleVB1 *
# 838| ValueCategory = prvalue(load)
# 838| getRValue().getFullyConverted(): [CStyleCast] (Base *)...
# 838| Conversion = [BaseClassConversion] base class conversion
# 838| Type = [PointerType] Base *
# 838| ValueCategory = prvalue
# 839| getStmt(33): [ExprStmt] ExprStmt
# 839| getExpr(): [AssignExpr] ... = ...
# 839| Type = [PointerType] Base *
# 839| ValueCategory = lvalue
# 839| getLValue(): [VariableAccess] pb
# 839| Type = [PointerType] Base *
# 839| ValueCategory = lvalue
# 839| getRValue(): [VariableAccess] pdv
# 839| Type = [PointerType] DerivedVB *
# 839| ValueCategory = prvalue(load)
# 839| getRValue().getFullyConverted(): [CStyleCast] (Base *)...
# 839| Conversion = [BaseClassConversion] base class conversion
# 839| Type = [PointerType] Base *
# 839| ValueCategory = prvalue
# 840| getStmt(34): [ReturnStmt] return ...
# 842| [CopyAssignmentOperator] PolymorphicBase& PolymorphicBase::operator=(PolymorphicBase const&)
# 842| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const PolymorphicBase &
# 842| [Constructor] void PolymorphicBase::PolymorphicBase()
# 842| <params>:
# 842| <initializations>:
# 842| getEntryPoint(): [BlockStmt] { ... }
# 842| getStmt(0): [ReturnStmt] return ...
# 842| [CopyConstructor] void PolymorphicBase::PolymorphicBase(PolymorphicBase const&)
# 842| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const PolymorphicBase &
# 843| [Destructor,VirtualFunction] void PolymorphicBase::~PolymorphicBase()
# 843| <params>:
# 846| [CopyAssignmentOperator] PolymorphicDerived& PolymorphicDerived::operator=(PolymorphicDerived const&)
# 846| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const PolymorphicDerived &
# 846| [MoveAssignmentOperator] PolymorphicDerived& PolymorphicDerived::operator=(PolymorphicDerived&&)
# 846| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] PolymorphicDerived &&
# 846| [Constructor] void PolymorphicDerived::PolymorphicDerived()
# 846| <params>:
# 846| <initializations>:
# 846| getInitializer(0): [ConstructorDirectInit] call to PolymorphicBase
# 846| Type = [VoidType] void
# 846| ValueCategory = prvalue
# 846| getEntryPoint(): [BlockStmt] { ... }
# 846| getStmt(0): [ReturnStmt] return ...
# 846| [CopyConstructor] void PolymorphicDerived::PolymorphicDerived(PolymorphicDerived const&)
# 846| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const PolymorphicDerived &
# 846| [MoveConstructor] void PolymorphicDerived::PolymorphicDerived(PolymorphicDerived&&)
# 846| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] PolymorphicDerived &&
# 846| [Destructor,VirtualFunction] void PolymorphicDerived::~PolymorphicDerived()
# 846| <params>:
#-----| getEntryPoint(): [BlockStmt] { ... }
#-----| getStmt(0): [ReturnStmt] return ...
# 846| <destructions>:
# 846| getDestruction(0): [DestructorDirectDestruction] call to ~PolymorphicBase
# 846| Type = [VoidType] void
# 846| ValueCategory = prvalue
# 849| [TopLevelFunction] void DynamicCast()
# 849| <params>:
# 849| getEntryPoint(): [BlockStmt] { ... }
# 850| getStmt(0): [DeclStmt] declaration
# 850| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 850| Type = [Struct] PolymorphicBase
# 850| getVariable().getInitializer(): [Initializer] initializer for b
# 850| getExpr(): [ConstructorCall] call to PolymorphicBase
# 850| Type = [VoidType] void
# 850| ValueCategory = prvalue
# 851| getStmt(1): [DeclStmt] declaration
# 851| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 851| Type = [Struct] PolymorphicDerived
# 851| getVariable().getInitializer(): [Initializer] initializer for d
# 851| getExpr(): [ConstructorCall] call to PolymorphicDerived
# 851| Type = [VoidType] void
# 851| ValueCategory = prvalue
# 853| getStmt(2): [DeclStmt] declaration
# 853| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pb
# 853| Type = [PointerType] PolymorphicBase *
# 853| getVariable().getInitializer(): [Initializer] initializer for pb
# 853| getExpr(): [AddressOfExpr] & ...
# 853| Type = [PointerType] PolymorphicBase *
# 853| ValueCategory = prvalue
# 853| getOperand(): [VariableAccess] b
# 853| Type = [Struct] PolymorphicBase
# 853| ValueCategory = lvalue
# 854| getStmt(3): [DeclStmt] declaration
# 854| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pd
# 854| Type = [PointerType] PolymorphicDerived *
# 854| getVariable().getInitializer(): [Initializer] initializer for pd
# 854| getExpr(): [AddressOfExpr] & ...
# 854| Type = [PointerType] PolymorphicDerived *
# 854| ValueCategory = prvalue
# 854| getOperand(): [VariableAccess] d
# 854| Type = [Struct] PolymorphicDerived
# 854| ValueCategory = lvalue
# 857| getStmt(4): [ExprStmt] ExprStmt
# 857| getExpr(): [AssignExpr] ... = ...
# 857| Type = [PointerType] PolymorphicBase *
# 857| ValueCategory = lvalue
# 857| getLValue(): [VariableAccess] pb
# 857| Type = [PointerType] PolymorphicBase *
# 857| ValueCategory = lvalue
# 857| getRValue(): [VariableAccess] pd
# 857| Type = [PointerType] PolymorphicDerived *
# 857| ValueCategory = prvalue(load)
# 857| getRValue().getFullyConverted(): [DynamicCast] dynamic_cast<PolymorphicBase *>...
# 857| Conversion = [DynamicCast] dynamic_cast
# 857| Type = [PointerType] PolymorphicBase *
# 857| ValueCategory = prvalue
# 858| getStmt(5): [DeclStmt] declaration
# 858| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rb
# 858| Type = [LValueReferenceType] PolymorphicBase &
# 858| getVariable().getInitializer(): [Initializer] initializer for rb
# 858| getExpr(): [VariableAccess] d
# 858| Type = [Struct] PolymorphicDerived
# 858| ValueCategory = lvalue
# 858| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 858| Type = [LValueReferenceType] PolymorphicBase &
# 858| ValueCategory = prvalue
# 858| getExpr(): [DynamicCast] dynamic_cast<PolymorphicBase>...
# 858| Conversion = [DynamicCast] dynamic_cast
# 858| Type = [Struct] PolymorphicBase
# 858| ValueCategory = lvalue
# 860| getStmt(6): [ExprStmt] ExprStmt
# 860| getExpr(): [AssignExpr] ... = ...
# 860| Type = [PointerType] PolymorphicDerived *
# 860| ValueCategory = lvalue
# 860| getLValue(): [VariableAccess] pd
# 860| Type = [PointerType] PolymorphicDerived *
# 860| ValueCategory = lvalue
# 860| getRValue(): [VariableAccess] pb
# 860| Type = [PointerType] PolymorphicBase *
# 860| ValueCategory = prvalue(load)
# 860| getRValue().getFullyConverted(): [DynamicCast] dynamic_cast<PolymorphicDerived *>...
# 860| Conversion = [DynamicCast] dynamic_cast
# 860| Type = [PointerType] PolymorphicDerived *
# 860| ValueCategory = prvalue
# 861| getStmt(7): [DeclStmt] declaration
# 861| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd
# 861| Type = [LValueReferenceType] PolymorphicDerived &
# 861| getVariable().getInitializer(): [Initializer] initializer for rd
# 861| getExpr(): [VariableAccess] b
# 861| Type = [Struct] PolymorphicBase
# 861| ValueCategory = lvalue
# 861| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 861| Type = [LValueReferenceType] PolymorphicDerived &
# 861| ValueCategory = prvalue
# 861| getExpr(): [DynamicCast] dynamic_cast<PolymorphicDerived>...
# 861| Conversion = [DynamicCast] dynamic_cast
# 861| Type = [Struct] PolymorphicDerived
# 861| ValueCategory = lvalue
# 863| getStmt(8): [DeclStmt] declaration
# 863| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pv
# 863| Type = [VoidPointerType] void *
# 863| getVariable().getInitializer(): [Initializer] initializer for pv
# 863| getExpr(): [VariableAccess] pb
# 863| Type = [PointerType] PolymorphicBase *
# 863| ValueCategory = prvalue(load)
# 863| getExpr().getFullyConverted(): [DynamicCast] dynamic_cast<void *>...
# 863| Conversion = [DynamicCast] dynamic_cast
# 863| Type = [VoidPointerType] void *
# 863| ValueCategory = prvalue
# 864| getStmt(9): [DeclStmt] declaration
# 864| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pcv
# 864| Type = [PointerType] const void *
# 864| getVariable().getInitializer(): [Initializer] initializer for pcv
# 864| getExpr(): [VariableAccess] pd
# 864| Type = [PointerType] PolymorphicDerived *
# 864| ValueCategory = prvalue(load)
# 864| getExpr().getFullyConverted(): [DynamicCast] dynamic_cast<const void *>...
# 864| Conversion = [DynamicCast] dynamic_cast
# 864| Type = [PointerType] const void *
# 864| ValueCategory = prvalue
# 865| getStmt(10): [ReturnStmt] return ...
# 867| [Constructor] void String::String()
# 867| <params>:
# 867| <initializations>:
# 868| getInitializer(0): [ConstructorDelegationInit] call to String
# 868| Type = [VoidType] void
# 868| ValueCategory = prvalue
# 868| getArgument(0):
# 868| Type = [ArrayType] const char[1]
# 868| Value = [StringLiteral] ""
# 868| ValueCategory = lvalue
# 868| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 868| Type = [PointerType] const char *
# 868| ValueCategory = prvalue
# 868| getEntryPoint(): [BlockStmt] { ... }
# 869| getStmt(0): [ReturnStmt] return ...
# 871| [TopLevelFunction] void ArrayConversions()
# 871| <params>:
# 871| getEntryPoint(): [BlockStmt] { ... }
# 872| getStmt(0): [DeclStmt] declaration
# 872| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
# 872| Type = [ArrayType] char[5]
# 873| getStmt(1): [DeclStmt] declaration
# 873| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p
# 873| Type = [PointerType] const char *
# 873| getVariable().getInitializer(): [Initializer] initializer for p
# 873| getExpr(): [VariableAccess] a
# 873| Type = [ArrayType] char[5]
# 873| ValueCategory = lvalue
# 873| getExpr().getFullyConverted(): [CStyleCast] (const char *)...
# 873| Conversion = [PointerConversion] pointer conversion
# 873| Type = [PointerType] const char *
# 873| ValueCategory = prvalue
# 873| getExpr(): [ArrayToPointerConversion] array to pointer conversion
# 873| Type = [CharPointerType] char *
# 873| ValueCategory = prvalue
# 874| getStmt(2): [ExprStmt] ExprStmt
# 874| getExpr(): [AssignExpr] ... = ...
# 874| Type = [PointerType] const char *
# 874| ValueCategory = lvalue
# 874| getLValue(): [VariableAccess] p
# 874| Type = [PointerType] const char *
# 874| ValueCategory = lvalue
# 874| getRValue(): test
# 874| Type = [ArrayType] const char[5]
# 874| Value = [StringLiteral] "test"
# 874| ValueCategory = lvalue
# 874| getRValue().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 874| Type = [PointerType] const char *
# 874| ValueCategory = prvalue
# 875| getStmt(3): [ExprStmt] ExprStmt
# 875| getExpr(): [AssignExpr] ... = ...
# 875| Type = [PointerType] const char *
# 875| ValueCategory = lvalue
# 875| getLValue(): [VariableAccess] p
# 875| Type = [PointerType] const char *
# 875| ValueCategory = lvalue
# 875| getRValue(): [AddressOfExpr] & ...
# 875| Type = [CharPointerType] char *
# 875| ValueCategory = prvalue
# 875| getOperand(): [ArrayExpr] access to array
# 875| Type = [PlainCharType] char
# 875| ValueCategory = lvalue
# 875| getArrayBase(): [VariableAccess] a
# 875| Type = [ArrayType] char[5]
# 875| ValueCategory = lvalue
# 875| getArrayOffset(): [Literal] 0
# 875| Type = [IntType] int
# 875| Value = [Literal] 0
# 875| ValueCategory = prvalue
# 875| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 875| Type = [CharPointerType] char *
# 875| ValueCategory = prvalue
# 875| getRValue().getFullyConverted(): [CStyleCast] (const char *)...
# 875| Conversion = [PointerConversion] pointer conversion
# 875| Type = [PointerType] const char *
# 875| ValueCategory = prvalue
# 876| getStmt(4): [ExprStmt] ExprStmt
# 876| getExpr(): [AssignExpr] ... = ...
# 876| Type = [PointerType] const char *
# 876| ValueCategory = lvalue
# 876| getLValue(): [VariableAccess] p
# 876| Type = [PointerType] const char *
# 876| ValueCategory = lvalue
# 876| getRValue(): [AddressOfExpr] & ...
# 876| Type = [PointerType] const char *
# 876| ValueCategory = prvalue
# 876| getOperand(): [ArrayExpr] access to array
# 876| Type = [SpecifiedType] const char
# 876| ValueCategory = lvalue
# 876| getArrayBase(): test
# 876| Type = [ArrayType] const char[5]
# 876| Value = [StringLiteral] "test"
# 876| ValueCategory = lvalue
# 876| getArrayOffset(): [Literal] 0
# 876| Type = [IntType] int
# 876| Value = [Literal] 0
# 876| ValueCategory = prvalue
# 876| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 876| Type = [PointerType] const char *
# 876| ValueCategory = prvalue
# 877| getStmt(5): [DeclStmt] declaration
# 877| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ra
# 877| Type = [LValueReferenceType] char(&)[5]
# 877| getVariable().getInitializer(): [Initializer] initializer for ra
# 877| getExpr(): [VariableAccess] a
# 877| Type = [ArrayType] char[5]
# 877| ValueCategory = lvalue
# 877| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 877| Type = [LValueReferenceType] char(&)[5]
# 877| ValueCategory = prvalue
# 878| getStmt(6): [DeclStmt] declaration
# 878| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rs
# 878| Type = [LValueReferenceType] const char(&)[5]
# 878| getVariable().getInitializer(): [Initializer] initializer for rs
# 878| getExpr(): test
# 878| Type = [ArrayType] const char[5]
# 878| Value = [StringLiteral] "test"
# 878| ValueCategory = lvalue
# 878| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 878| Type = [LValueReferenceType] const char(&)[5]
# 878| ValueCategory = prvalue
# 879| getStmt(7): [DeclStmt] declaration
# 879| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pa
# 879| Type = [PointerType] const char(*)[5]
# 879| getVariable().getInitializer(): [Initializer] initializer for pa
# 879| getExpr(): [AddressOfExpr] & ...
# 879| Type = [PointerType] char(*)[5]
# 879| ValueCategory = prvalue
# 879| getOperand(): [VariableAccess] a
# 879| Type = [ArrayType] char[5]
# 879| ValueCategory = lvalue
# 879| getExpr().getFullyConverted(): [CStyleCast] (const char(*)[5])...
# 879| Conversion = [PointerConversion] pointer conversion
# 879| Type = [PointerType] const char(*)[5]
# 879| ValueCategory = prvalue
# 880| getStmt(8): [ExprStmt] ExprStmt
# 880| getExpr(): [AssignExpr] ... = ...
# 880| Type = [PointerType] const char(*)[5]
# 880| ValueCategory = lvalue
# 880| getLValue(): [VariableAccess] pa
# 880| Type = [PointerType] const char(*)[5]
# 880| ValueCategory = lvalue
# 880| getRValue(): [AddressOfExpr] & ...
# 880| Type = [PointerType] const char(*)[5]
# 880| ValueCategory = prvalue
# 880| getOperand(): test
# 880| Type = [ArrayType] const char[5]
# 880| Value = [StringLiteral] "test"
# 880| ValueCategory = lvalue
# 881| getStmt(9): [ReturnStmt] return ...
# 883| [TopLevelFunction] void FuncPtrConversions(int(*)(int), void*)
# 883| <params>:
# 883| getParameter(0): [Parameter] pfn
# 883| Type = [FunctionPointerType] ..(*)(..)
# 883| getParameter(1): [Parameter] p
# 883| Type = [VoidPointerType] void *
# 883| getEntryPoint(): [BlockStmt] { ... }
# 884| getStmt(0): [ExprStmt] ExprStmt
# 884| getExpr(): [AssignExpr] ... = ...
# 884| Type = [VoidPointerType] void *
# 884| ValueCategory = lvalue
# 884| getLValue(): [VariableAccess] p
# 884| Type = [VoidPointerType] void *
# 884| ValueCategory = lvalue
# 884| getRValue(): [VariableAccess] pfn
# 884| Type = [FunctionPointerType] ..(*)(..)
# 884| ValueCategory = prvalue(load)
# 884| getRValue().getFullyConverted(): [CStyleCast] (void *)...
# 884| Conversion = [PointerConversion] pointer conversion
# 884| Type = [VoidPointerType] void *
# 884| ValueCategory = prvalue
# 885| getStmt(1): [ExprStmt] ExprStmt
# 885| getExpr(): [AssignExpr] ... = ...
# 885| Type = [FunctionPointerType] ..(*)(..)
# 885| ValueCategory = lvalue
# 885| getLValue(): [VariableAccess] pfn
# 885| Type = [FunctionPointerType] ..(*)(..)
# 885| ValueCategory = lvalue
# 885| getRValue(): [VariableAccess] p
# 885| Type = [VoidPointerType] void *
# 885| ValueCategory = prvalue(load)
# 885| getRValue().getFullyConverted(): [CStyleCast] (..(*)(..))...
# 885| Conversion = [PointerConversion] pointer conversion
# 885| Type = [FunctionPointerType] ..(*)(..)
# 885| ValueCategory = prvalue
# 886| getStmt(2): [ReturnStmt] return ...
# 888| [TopLevelFunction] void VAListUsage(int, __va_list_tag[1])
# 888| <params>:
# 888| getParameter(0): [Parameter] x
# 888| Type = [IntType] int
# 888| getParameter(1): [Parameter] args
# 888| Type = [ArrayType] __va_list_tag[1]
# 888| getEntryPoint(): [BlockStmt] { ... }
# 889| getStmt(0): [DeclStmt] declaration
# 889| getDeclarationEntry(0): [VariableDeclarationEntry] definition of args2
# 889| Type = [ArrayType] __va_list_tag[1]
# 890| getStmt(1): [ExprStmt] ExprStmt
# 890| getExpr(): [BuiltInVarArgCopy] __builtin_va_copy
# 890| Type = [VoidType] void
# 890| ValueCategory = prvalue
# 890| getDestinationVAList(): [VariableAccess] args2
# 890| Type = [ArrayType] __va_list_tag[1]
# 890| ValueCategory = lvalue
# 890| getSourceVAList(): [VariableAccess] args
# 890| Type = [PointerType] __va_list_tag *
# 890| ValueCategory = prvalue(load)
# 890| getDestinationVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 890| Type = [PointerType] __va_list_tag *
# 890| ValueCategory = prvalue
# 891| getStmt(2): [DeclStmt] declaration
# 891| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 891| Type = [DoubleType] double
# 891| getVariable().getInitializer(): [Initializer] initializer for d
# 891| getExpr(): [BuiltInVarArg] __builtin_va_arg
# 891| Type = [DoubleType] double
# 891| ValueCategory = prvalue(load)
# 891| getVAList(): [VariableAccess] args
# 891| Type = [PointerType] __va_list_tag *
# 891| ValueCategory = prvalue(load)
# 892| getStmt(3): [DeclStmt] declaration
# 892| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f
# 892| Type = [FloatType] float
# 892| getVariable().getInitializer(): [Initializer] initializer for f
# 892| getExpr(): [BuiltInVarArg] __builtin_va_arg
# 892| Type = [IntType] int
# 892| ValueCategory = prvalue(load)
# 892| getVAList(): [VariableAccess] args
# 892| Type = [PointerType] __va_list_tag *
# 892| ValueCategory = prvalue(load)
# 892| getExpr().getFullyConverted(): [CStyleCast] (float)...
# 892| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 892| Type = [FloatType] float
# 892| ValueCategory = prvalue
# 893| getStmt(4): [ExprStmt] ExprStmt
# 893| getExpr(): [BuiltInVarArgsEnd] __builtin_va_end
# 893| Type = [VoidType] void
# 893| ValueCategory = prvalue
# 893| getVAList(): [VariableAccess] args2
# 893| Type = [ArrayType] __va_list_tag[1]
# 893| ValueCategory = lvalue
# 893| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 893| Type = [PointerType] __va_list_tag *
# 893| ValueCategory = prvalue
# 894| getStmt(5): [ReturnStmt] return ...
# 896| [TopLevelFunction] void VarArgUsage(int)
# 896| <params>:
# 896| getParameter(0): [Parameter] x
# 896| Type = [IntType] int
# 896| getEntryPoint(): [BlockStmt] { ... }
# 897| getStmt(0): [DeclStmt] declaration
# 897| getDeclarationEntry(0): [VariableDeclarationEntry] definition of args
# 897| Type = [ArrayType] __va_list_tag[1]
# 899| getStmt(1): [ExprStmt] ExprStmt
# 899| getExpr(): [BuiltInVarArgsStart] __builtin_va_start
# 899| Type = [VoidType] void
# 899| ValueCategory = prvalue
# 899| getVAList(): [VariableAccess] args
# 899| Type = [ArrayType] __va_list_tag[1]
# 899| ValueCategory = lvalue
# 899| getLastNamedParameter(): [VariableAccess] x
# 899| Type = [IntType] int
# 899| ValueCategory = lvalue
# 899| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 899| Type = [PointerType] __va_list_tag *
# 899| ValueCategory = prvalue
# 900| getStmt(2): [DeclStmt] declaration
# 900| getDeclarationEntry(0): [VariableDeclarationEntry] definition of args2
# 900| Type = [ArrayType] __va_list_tag[1]
# 901| getStmt(3): [ExprStmt] ExprStmt
# 901| getExpr(): [BuiltInVarArgCopy] __builtin_va_copy
# 901| Type = [VoidType] void
# 901| ValueCategory = prvalue
# 901| getDestinationVAList(): [VariableAccess] args2
# 901| Type = [ArrayType] __va_list_tag[1]
# 901| ValueCategory = lvalue
# 901| getSourceVAList(): [VariableAccess] args
# 901| Type = [ArrayType] __va_list_tag[1]
# 901| ValueCategory = lvalue
# 901| getDestinationVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 901| Type = [PointerType] __va_list_tag *
# 901| ValueCategory = prvalue
# 901| getSourceVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 901| Type = [PointerType] __va_list_tag *
# 901| ValueCategory = prvalue
# 902| getStmt(4): [DeclStmt] declaration
# 902| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 902| Type = [DoubleType] double
# 902| getVariable().getInitializer(): [Initializer] initializer for d
# 902| getExpr(): [BuiltInVarArg] __builtin_va_arg
# 902| Type = [DoubleType] double
# 902| ValueCategory = prvalue(load)
# 902| getVAList(): [VariableAccess] args
# 902| Type = [ArrayType] __va_list_tag[1]
# 902| ValueCategory = lvalue
# 902| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 902| Type = [PointerType] __va_list_tag *
# 902| ValueCategory = prvalue
# 903| getStmt(5): [DeclStmt] declaration
# 903| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f
# 903| Type = [FloatType] float
# 903| getVariable().getInitializer(): [Initializer] initializer for f
# 903| getExpr(): [BuiltInVarArg] __builtin_va_arg
# 903| Type = [IntType] int
# 903| ValueCategory = prvalue(load)
# 903| getVAList(): [VariableAccess] args
# 903| Type = [ArrayType] __va_list_tag[1]
# 903| ValueCategory = lvalue
# 903| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 903| Type = [PointerType] __va_list_tag *
# 903| ValueCategory = prvalue
# 903| getExpr().getFullyConverted(): [CStyleCast] (float)...
# 903| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 903| Type = [FloatType] float
# 903| ValueCategory = prvalue
# 904| getStmt(6): [ExprStmt] ExprStmt
# 904| getExpr(): [BuiltInVarArgsEnd] __builtin_va_end
# 904| Type = [VoidType] void
# 904| ValueCategory = prvalue
# 904| getVAList(): [VariableAccess] args
# 904| Type = [ArrayType] __va_list_tag[1]
# 904| ValueCategory = lvalue
# 904| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 904| Type = [PointerType] __va_list_tag *
# 904| ValueCategory = prvalue
# 905| getStmt(7): [ExprStmt] ExprStmt
# 905| getExpr(): [FunctionCall] call to VAListUsage
# 905| Type = [VoidType] void
# 905| ValueCategory = prvalue
# 905| getArgument(0): [VariableAccess] x
# 905| Type = [IntType] int
# 905| ValueCategory = prvalue(load)
# 905| getArgument(1): [VariableAccess] args2
# 905| Type = [ArrayType] __va_list_tag[1]
# 905| ValueCategory = lvalue
# 905| getArgument(1).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 905| Type = [PointerType] __va_list_tag *
# 905| ValueCategory = prvalue
# 906| getStmt(8): [ExprStmt] ExprStmt
# 906| getExpr(): [BuiltInVarArgsEnd] __builtin_va_end
# 906| Type = [VoidType] void
# 906| ValueCategory = prvalue
# 906| getVAList(): [VariableAccess] args2
# 906| Type = [ArrayType] __va_list_tag[1]
# 906| ValueCategory = lvalue
# 906| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 906| Type = [PointerType] __va_list_tag *
# 906| ValueCategory = prvalue
# 907| getStmt(9): [ReturnStmt] return ...
# 909| [TopLevelFunction] void CastToVoid(int)
# 909| <params>:
# 909| getParameter(0): [Parameter] x
# 909| Type = [IntType] int
# 909| getEntryPoint(): [BlockStmt] { ... }
# 910| getStmt(0): [ExprStmt] ExprStmt
# 910| getExpr(): [VariableAccess] x
# 910| Type = [IntType] int
# 910| ValueCategory = lvalue
# 910| getExpr().getFullyConverted(): [CStyleCast] (void)...
# 910| Conversion = [VoidConversion] conversion to void
# 910| Type = [VoidType] void
# 910| ValueCategory = prvalue
# 911| getStmt(1): [ReturnStmt] return ...
# 913| [TopLevelFunction] void ConstantConditions(int)
# 913| <params>:
# 913| getParameter(0): [Parameter] x
# 913| Type = [IntType] int
# 913| getEntryPoint(): [BlockStmt] { ... }
# 914| getStmt(0): [DeclStmt] declaration
# 914| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
# 914| Type = [BoolType] bool
# 914| getVariable().getInitializer(): [Initializer] initializer for a
# 914| getExpr(): [LogicalAndExpr] ... && ...
# 914| Type = [BoolType] bool
# 914| Value = [LogicalAndExpr] 1
# 914| ValueCategory = prvalue
# 914| getLeftOperand(): [Literal] 1
# 914| Type = [BoolType] bool
# 914| Value = [Literal] 1
# 914| ValueCategory = prvalue
# 914| getRightOperand(): [Literal] 1
# 914| Type = [BoolType] bool
# 914| Value = [Literal] 1
# 914| ValueCategory = prvalue
# 915| getStmt(1): [DeclStmt] declaration
# 915| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 915| Type = [IntType] int
# 915| getVariable().getInitializer(): [Initializer] initializer for b
# 915| getExpr(): [ConditionalExpr] ... ? ... : ...
# 915| Type = [IntType] int
# 915| ValueCategory = prvalue
# 915| getCondition(): [Literal] 1
# 915| Type = [BoolType] bool
# 915| Value = [Literal] 1
# 915| ValueCategory = prvalue
# 915| getThen(): [VariableAccess] x
# 915| Type = [IntType] int
# 915| ValueCategory = prvalue(load)
# 915| getElse(): [VariableAccess] x
# 915| Type = [IntType] int
# 915| ValueCategory = prvalue(load)
# 915| getCondition().getFullyConverted(): [ParenthesisExpr] (...)
# 915| Type = [BoolType] bool
# 915| Value = [ParenthesisExpr] 1
# 915| ValueCategory = prvalue
# 916| getStmt(2): [ReturnStmt] return ...
# 924| [Operator,TopLevelFunction] void* operator new(size_t, float)
# 924| <params>:
# 924| getParameter(0): [Parameter] (unnamed parameter 0)
# 924| Type = [CTypedefType,Size_t] size_t
# 924| getParameter(1): [Parameter] (unnamed parameter 1)
# 924| Type = [FloatType] float
# 925| [Operator,TopLevelFunction] void* operator new[](size_t, float)
# 925| <params>:
# 925| getParameter(0): [Parameter] (unnamed parameter 0)
# 925| Type = [CTypedefType,Size_t] size_t
# 925| getParameter(1): [Parameter] (unnamed parameter 1)
# 925| Type = [FloatType] float
# 926| [Operator,TopLevelFunction] void* operator new(size_t, std::align_val_t, float)
# 926| <params>:
# 926| getParameter(0): [Parameter] (unnamed parameter 0)
# 926| Type = [CTypedefType,Size_t] size_t
# 926| getParameter(1): [Parameter] (unnamed parameter 1)
# 926| Type = [ScopedEnum] align_val_t
# 926| getParameter(2): [Parameter] (unnamed parameter 2)
# 926| Type = [FloatType] float
# 927| [Operator,TopLevelFunction] void* operator new[](size_t, std::align_val_t, float)
# 927| <params>:
# 927| getParameter(0): [Parameter] (unnamed parameter 0)
# 927| Type = [CTypedefType,Size_t] size_t
# 927| getParameter(1): [Parameter] (unnamed parameter 1)
# 927| Type = [ScopedEnum] align_val_t
# 927| getParameter(2): [Parameter] (unnamed parameter 2)
# 927| Type = [FloatType] float
# 928| [Operator,TopLevelFunction] void operator delete(void*, float)
# 928| <params>:
# 928| getParameter(0): [Parameter] (unnamed parameter 0)
# 928| Type = [VoidPointerType] void *
# 928| getParameter(1): [Parameter] (unnamed parameter 1)
# 928| Type = [FloatType] float
# 929| [Operator,TopLevelFunction] void operator delete[](void*, float)
# 929| <params>:
# 929| getParameter(0): [Parameter] (unnamed parameter 0)
# 929| Type = [VoidPointerType] void *
# 929| getParameter(1): [Parameter] (unnamed parameter 1)
# 929| Type = [FloatType] float
# 930| [Operator,TopLevelFunction] void operator delete(void*, std::align_val_t, float)
# 930| <params>:
# 930| getParameter(0): [Parameter] (unnamed parameter 0)
# 930| Type = [VoidPointerType] void *
# 930| getParameter(1): [Parameter] (unnamed parameter 1)
# 930| Type = [ScopedEnum] align_val_t
# 930| getParameter(2): [Parameter] (unnamed parameter 2)
# 930| Type = [FloatType] float
# 931| [Operator,TopLevelFunction] void operator delete[](void*, std::align_val_t, float)
# 931| <params>:
# 931| getParameter(0): [Parameter] (unnamed parameter 0)
# 931| Type = [VoidPointerType] void *
# 931| getParameter(1): [Parameter] (unnamed parameter 1)
# 931| Type = [ScopedEnum] align_val_t
# 931| getParameter(2): [Parameter] (unnamed parameter 2)
# 931| Type = [FloatType] float
# 933| [CopyAssignmentOperator] SizedDealloc& SizedDealloc::operator=(SizedDealloc const&)
# 933| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const SizedDealloc &
# 933| [MoveAssignmentOperator] SizedDealloc& SizedDealloc::operator=(SizedDealloc&&)
# 933| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] SizedDealloc &&
# 935| [MemberFunction] void* SizedDealloc::operator new(size_t)
# 935| <params>:
# 935| getParameter(0): [Parameter] (unnamed parameter 0)
# 935| Type = [CTypedefType,Size_t] size_t
# 936| [MemberFunction] void* SizedDealloc::operator new[](size_t)
# 936| <params>:
# 936| getParameter(0): [Parameter] (unnamed parameter 0)
# 936| Type = [CTypedefType,Size_t] size_t
# 937| [MemberFunction] void SizedDealloc::operator delete(void*, size_t)
# 937| <params>:
# 937| getParameter(0): [Parameter] (unnamed parameter 0)
# 937| Type = [VoidPointerType] void *
# 937| getParameter(1): [Parameter] (unnamed parameter 1)
# 937| Type = [CTypedefType,Size_t] size_t
# 938| [MemberFunction] void SizedDealloc::operator delete[](void*, size_t)
# 938| <params>:
# 938| getParameter(0): [Parameter] (unnamed parameter 0)
# 938| Type = [VoidPointerType] void *
# 938| getParameter(1): [Parameter] (unnamed parameter 1)
# 938| Type = [CTypedefType,Size_t] size_t
# 941| [CopyAssignmentOperator] Overaligned& Overaligned::operator=(Overaligned const&)
# 941| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Overaligned &
# 941| [MoveAssignmentOperator] Overaligned& Overaligned::operator=(Overaligned&&)
# 941| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Overaligned &&
# 945| [CopyAssignmentOperator] DefaultCtorWithDefaultParam& DefaultCtorWithDefaultParam::operator=(DefaultCtorWithDefaultParam const&)
# 945| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const DefaultCtorWithDefaultParam &
# 945| [MoveAssignmentOperator] DefaultCtorWithDefaultParam& DefaultCtorWithDefaultParam::operator=(DefaultCtorWithDefaultParam&&)
# 945| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] DefaultCtorWithDefaultParam &&
# 945| [CopyConstructor] void DefaultCtorWithDefaultParam::DefaultCtorWithDefaultParam(DefaultCtorWithDefaultParam const&)
# 945| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const DefaultCtorWithDefaultParam &
# 945| [MoveConstructor] void DefaultCtorWithDefaultParam::DefaultCtorWithDefaultParam(DefaultCtorWithDefaultParam&&)
# 945| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] DefaultCtorWithDefaultParam &&
# 946| [Constructor] void DefaultCtorWithDefaultParam::DefaultCtorWithDefaultParam(double)
# 946| <params>:
# 946| getParameter(0): [Parameter] d
# 946| Type = [DoubleType] double
# 949| [TopLevelFunction] void OperatorNew()
# 949| <params>:
# 949| getEntryPoint(): [BlockStmt] { ... }
# 950| getStmt(0): [ExprStmt] ExprStmt
# 950| getExpr(): [NewExpr] new
# 950| Type = [IntPointerType] int *
# 950| ValueCategory = prvalue
# 951| getStmt(1): [ExprStmt] ExprStmt
# 951| getExpr(): [NewExpr] new
# 951| Type = [IntPointerType] int *
# 951| ValueCategory = prvalue
# 951| getAllocatorCall(): [FunctionCall] call to operator new
# 951| Type = [VoidPointerType] void *
# 951| ValueCategory = prvalue
# 951| getArgument(0): [ErrorExpr] <error expr>
# 951| Type = [LongType] unsigned long
# 951| ValueCategory = prvalue
# 951| getArgument(1): [Literal] 1.0
# 951| Type = [FloatType] float
# 951| Value = [Literal] 1.0
# 951| ValueCategory = prvalue
# 952| getStmt(2): [ExprStmt] ExprStmt
# 952| getExpr(): [NewExpr] new
# 952| Type = [IntPointerType] int *
# 952| ValueCategory = prvalue
# 952| getInitializer(): [Literal] 0
# 952| Type = [IntType] int
# 952| Value = [Literal] 0
# 952| ValueCategory = prvalue
# 953| getStmt(3): [ExprStmt] ExprStmt
# 953| getExpr(): [NewExpr] new
# 953| Type = [PointerType] String *
# 953| ValueCategory = prvalue
# 953| getInitializer(): [ConstructorCall] call to String
# 953| Type = [VoidType] void
# 953| ValueCategory = prvalue
# 954| getStmt(4): [ExprStmt] ExprStmt
# 954| getExpr(): [NewExpr] new
# 954| Type = [PointerType] String *
# 954| ValueCategory = prvalue
# 954| getAllocatorCall(): [FunctionCall] call to operator new
# 954| Type = [VoidPointerType] void *
# 954| ValueCategory = prvalue
# 954| getArgument(0): [ErrorExpr] <error expr>
# 954| Type = [LongType] unsigned long
# 954| ValueCategory = prvalue
# 954| getArgument(1): [Literal] 1.0
# 954| Type = [FloatType] float
# 954| Value = [Literal] 1.0
# 954| ValueCategory = prvalue
# 954| getInitializer(): [ConstructorCall] call to String
# 954| Type = [VoidType] void
# 954| ValueCategory = prvalue
# 954| getArgument(0): hello
# 954| Type = [ArrayType] const char[6]
# 954| Value = [StringLiteral] "hello"
# 954| ValueCategory = lvalue
# 954| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 954| Type = [PointerType] const char *
# 954| ValueCategory = prvalue
# 955| getStmt(5): [ExprStmt] ExprStmt
# 955| getExpr(): [NewExpr] new
# 955| Type = [PointerType] Overaligned *
# 955| ValueCategory = prvalue
# 955| getAlignmentArgument(): [Literal] 128
# 955| Type = [ScopedEnum] align_val_t
# 955| Value = [Literal] 128
# 955| ValueCategory = prvalue
# 956| getStmt(6): [ExprStmt] ExprStmt
# 956| getExpr(): [NewExpr] new
# 956| Type = [PointerType] Overaligned *
# 956| ValueCategory = prvalue
# 956| getAllocatorCall(): [FunctionCall] call to operator new
# 956| Type = [VoidPointerType] void *
# 956| ValueCategory = prvalue
# 956| getArgument(0): [ErrorExpr] <error expr>
# 956| Type = [LongType] unsigned long
# 956| ValueCategory = prvalue
# 956| getArgument(1): [Literal] 128
# 956| Type = [ScopedEnum] align_val_t
# 956| Value = [Literal] 128
# 956| ValueCategory = prvalue
# 956| getArgument(2): [Literal] 1.0
# 956| Type = [FloatType] float
# 956| Value = [Literal] 1.0
# 956| ValueCategory = prvalue
# 956| getInitializer(): [Literal] 0
# 956| Type = [Struct] Overaligned
# 956| Value = [Literal] 0
# 956| ValueCategory = prvalue
# 957| getStmt(7): [ReturnStmt] return ...
# 959| [TopLevelFunction] void OperatorNewArray(int)
# 959| <params>:
# 959| getParameter(0): [Parameter] n
# 959| Type = [IntType] int
# 959| getEntryPoint(): [BlockStmt] { ... }
# 960| getStmt(0): [ExprStmt] ExprStmt
# 960| getExpr(): [NewArrayExpr] new[]
# 960| Type = [IntPointerType] int *
# 960| ValueCategory = prvalue
# 961| getStmt(1): [ExprStmt] ExprStmt
# 961| getExpr(): [NewArrayExpr] new[]
# 961| Type = [IntPointerType] int *
# 961| ValueCategory = prvalue
# 961| getExtent(): [VariableAccess] n
# 961| Type = [IntType] int
# 961| ValueCategory = prvalue(load)
# 962| getStmt(2): [ExprStmt] ExprStmt
# 962| getExpr(): [NewArrayExpr] new[]
# 962| Type = [IntPointerType] int *
# 962| ValueCategory = prvalue
# 962| getAllocatorCall(): [FunctionCall] call to operator new[]
# 962| Type = [VoidPointerType] void *
# 962| ValueCategory = prvalue
# 962| getArgument(0): [ErrorExpr] <error expr>
# 962| Type = [LongType] unsigned long
# 962| ValueCategory = prvalue
# 962| getArgument(1): [Literal] 1.0
# 962| Type = [FloatType] float
# 962| Value = [Literal] 1.0
# 962| ValueCategory = prvalue
# 962| getExtent(): [VariableAccess] n
# 962| Type = [IntType] int
# 962| ValueCategory = prvalue(load)
# 963| getStmt(3): [ExprStmt] ExprStmt
# 963| getExpr(): [NewArrayExpr] new[]
# 963| Type = [PointerType] String *
# 963| ValueCategory = prvalue
# 963| getInitializer(): [ArrayAggregateLiteral] {...}
# 963| Type = [ArrayType] String[]
# 963| ValueCategory = prvalue
# 963| getElementExpr(0): [ConstructorCall] call to String
# 963| Type = [VoidType] void
# 963| ValueCategory = prvalue
# 963| getExtent(): [VariableAccess] n
# 963| Type = [IntType] int
# 963| ValueCategory = prvalue(load)
# 964| getStmt(4): [ExprStmt] ExprStmt
# 964| getExpr(): [NewArrayExpr] new[]
# 964| Type = [PointerType] Overaligned *
# 964| ValueCategory = prvalue
# 964| getExtent(): [VariableAccess] n
# 964| Type = [IntType] int
# 964| ValueCategory = prvalue(load)
# 964| getAlignmentArgument(): [Literal] 128
# 964| Type = [ScopedEnum] align_val_t
# 964| Value = [Literal] 128
# 964| ValueCategory = prvalue
# 965| getStmt(5): [ExprStmt] ExprStmt
# 965| getExpr(): [NewArrayExpr] new[]
# 965| Type = [PointerType] Overaligned *
# 965| ValueCategory = prvalue
# 965| getAllocatorCall(): [FunctionCall] call to operator new[]
# 965| Type = [VoidPointerType] void *
# 965| ValueCategory = prvalue
# 965| getArgument(0): [ErrorExpr] <error expr>
# 965| Type = [LongType] unsigned long
# 965| ValueCategory = prvalue
# 965| getArgument(1): [Literal] 128
# 965| Type = [ScopedEnum] align_val_t
# 965| Value = [Literal] 128
# 965| ValueCategory = prvalue
# 965| getArgument(2): [Literal] 1.0
# 965| Type = [FloatType] float
# 965| Value = [Literal] 1.0
# 965| ValueCategory = prvalue
# 966| getStmt(6): [ExprStmt] ExprStmt
# 966| getExpr(): [NewArrayExpr] new[]
# 966| Type = [PointerType] DefaultCtorWithDefaultParam *
# 966| ValueCategory = prvalue
# 966| getInitializer(): [ArrayAggregateLiteral] {...}
# 966| Type = [ArrayType] DefaultCtorWithDefaultParam[]
# 966| ValueCategory = prvalue
# 966| getElementExpr(0): [ConstructorCall] call to DefaultCtorWithDefaultParam
# 966| Type = [VoidType] void
# 966| ValueCategory = prvalue
# 966| getExtent(): [VariableAccess] n
# 966| Type = [IntType] int
# 966| ValueCategory = prvalue(load)
# 967| getStmt(7): [ExprStmt] ExprStmt
# 967| getExpr(): [NewArrayExpr] new[]
# 967| Type = [IntPointerType] int *
# 967| ValueCategory = prvalue
# 967| getInitializer(): [ArrayAggregateLiteral] {...}
# 967| Type = [ArrayType] int[3]
# 967| ValueCategory = prvalue
# 967| getElementExpr(0): [Literal] 0
# 967| Type = [IntType] int
# 967| Value = [Literal] 0
# 967| ValueCategory = prvalue
# 967| getElementExpr(1): [Literal] 1
# 967| Type = [IntType] int
# 967| Value = [Literal] 1
# 967| ValueCategory = prvalue
# 967| getElementExpr(2): [Literal] 2
# 967| Type = [IntType] int
# 967| Value = [Literal] 2
# 967| ValueCategory = prvalue
# 967| getExtent(): [VariableAccess] n
# 967| Type = [IntType] int
# 967| ValueCategory = prvalue(load)
# 968| getStmt(8): [ReturnStmt] return ...
# 970| [TopLevelFunction] int designatedInit()
# 970| <params>:
# 970| getEntryPoint(): [BlockStmt] { ... }
# 971| getStmt(0): [DeclStmt] declaration
# 971| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a1
# 971| Type = [ArrayType] int[1000]
# 971| getVariable().getInitializer(): [Initializer] initializer for a1
# 971| getExpr(): [ArrayAggregateLiteral] {...}
# 971| Type = [ArrayType] int[1000]
# 971| ValueCategory = prvalue
# 971| getElementExpr(2): [Literal] 10002
# 971| Type = [IntType] int
# 971| Value = [Literal] 10002
# 971| ValueCategory = prvalue
# 971| getElementExpr(900): [Literal] 10900
# 971| Type = [IntType] int
# 971| Value = [Literal] 10900
# 971| ValueCategory = prvalue
# 972| getStmt(1): [ReturnStmt] return ...
# 972| getExpr(): [ArrayExpr] access to array
# 972| Type = [IntType] int
# 972| ValueCategory = prvalue(load)
# 972| getArrayBase(): [VariableAccess] a1
# 972| Type = [ArrayType] int[1000]
# 972| ValueCategory = lvalue
# 972| getArrayOffset(): [Literal] 900
# 972| Type = [IntType] int
# 972| Value = [Literal] 900
# 972| ValueCategory = prvalue
# 972| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 972| Type = [IntPointerType] int *
# 972| ValueCategory = prvalue
# 975| [TopLevelFunction] void IfStmtWithDeclaration(int, int)
# 975| <params>:
# 975| getParameter(0): [Parameter] x
# 975| Type = [IntType] int
# 975| getParameter(1): [Parameter] y
# 975| Type = [IntType] int
# 975| getEntryPoint(): [BlockStmt] { ... }
# 976| getStmt(0): [IfStmt] if (...) ...
# 976| getCondition(): [ConditionDeclExpr] (condition decl)
# 976| Type = [BoolType] bool
# 976| ValueCategory = prvalue
# 976| getVariableAccess(): [VariableAccess] b
# 976| Type = [BoolType] bool
# 976| ValueCategory = prvalue(load)
# 976| getThen(): [BlockStmt] { ... }
# 977| getStmt(0): [ExprStmt] ExprStmt
# 977| getExpr(): [AssignExpr] ... = ...
# 977| Type = [IntType] int
# 977| ValueCategory = lvalue
# 977| getLValue(): [VariableAccess] x
# 977| Type = [IntType] int
# 977| ValueCategory = lvalue
# 977| getRValue(): [Literal] 5
# 977| Type = [IntType] int
# 977| Value = [Literal] 5
# 977| ValueCategory = prvalue
# 979| getElse(): [IfStmt] if (...) ...
# 979| getCondition(): [ConditionDeclExpr] (condition decl)
# 979| Type = [BoolType] bool
# 979| ValueCategory = prvalue
# 979| getVariableAccess(): [VariableAccess] z
# 979| Type = [IntType] int
# 979| ValueCategory = prvalue(load)
# 979| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)...
# 979| Conversion = [BoolConversion] conversion to bool
# 979| Type = [BoolType] bool
# 979| ValueCategory = prvalue
# 979| getThen(): [BlockStmt] { ... }
# 980| getStmt(0): [ExprStmt] ExprStmt
# 980| getExpr(): [AssignExpr] ... = ...
# 980| Type = [IntType] int
# 980| ValueCategory = lvalue
# 980| getLValue(): [VariableAccess] y
# 980| Type = [IntType] int
# 980| ValueCategory = lvalue
# 980| getRValue(): [Literal] 7
# 980| Type = [IntType] int
# 980| Value = [Literal] 7
# 980| ValueCategory = prvalue
# 982| getElse(): [IfStmt] if (...) ...
# 982| getCondition(): [ConditionDeclExpr] (condition decl)
# 982| Type = [BoolType] bool
# 982| ValueCategory = prvalue
# 982| getVariableAccess(): [VariableAccess] p
# 982| Type = [IntPointerType] int *
# 982| ValueCategory = prvalue(load)
# 982| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)...
# 982| Conversion = [BoolConversion] conversion to bool
# 982| Type = [BoolType] bool
# 982| ValueCategory = prvalue
# 982| getThen(): [BlockStmt] { ... }
# 983| getStmt(0): [ExprStmt] ExprStmt
# 983| getExpr(): [AssignExpr] ... = ...
# 983| Type = [IntType] int
# 983| ValueCategory = lvalue
# 983| getLValue(): [PointerDereferenceExpr] * ...
# 983| Type = [IntType] int
# 983| ValueCategory = lvalue
# 983| getOperand(): [VariableAccess] p
# 983| Type = [IntPointerType] int *
# 983| ValueCategory = prvalue(load)
# 983| getRValue(): [Literal] 2
# 983| Type = [IntType] int
# 983| Value = [Literal] 2
# 983| ValueCategory = prvalue
# 985| getStmt(1): [ReturnStmt] return ...
# 987| [TopLevelFunction] void WhileStmtWithDeclaration(int, int)
# 987| <params>:
# 987| getParameter(0): [Parameter] x
# 987| Type = [IntType] int
# 987| getParameter(1): [Parameter] y
# 987| Type = [IntType] int
# 987| getEntryPoint(): [BlockStmt] { ... }
# 988| getStmt(0): [WhileStmt] while (...) ...
# 988| getCondition(): [ConditionDeclExpr] (condition decl)
# 988| Type = [BoolType] bool
# 988| ValueCategory = prvalue
# 988| getVariableAccess(): [VariableAccess] b
# 988| Type = [BoolType] bool
# 988| ValueCategory = prvalue(load)
# 988| getStmt(): [BlockStmt] { ... }
# 990| getStmt(1): [WhileStmt] while (...) ...
# 990| getCondition(): [ConditionDeclExpr] (condition decl)
# 990| Type = [BoolType] bool
# 990| ValueCategory = prvalue
# 990| getVariableAccess(): [VariableAccess] z
# 990| Type = [IntType] int
# 990| ValueCategory = prvalue(load)
# 990| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)...
# 990| Conversion = [BoolConversion] conversion to bool
# 990| Type = [BoolType] bool
# 990| ValueCategory = prvalue
# 990| getStmt(): [BlockStmt] { ... }
# 992| getStmt(2): [WhileStmt] while (...) ...
# 992| getCondition(): [ConditionDeclExpr] (condition decl)
# 992| Type = [BoolType] bool
# 992| ValueCategory = prvalue
# 992| getVariableAccess(): [VariableAccess] p
# 992| Type = [IntPointerType] int *
# 992| ValueCategory = prvalue(load)
# 992| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)...
# 992| Conversion = [BoolConversion] conversion to bool
# 992| Type = [BoolType] bool
# 992| ValueCategory = prvalue
# 992| getStmt(): [BlockStmt] { ... }
# 994| getStmt(3): [ReturnStmt] return ...
# 996| [TopLevelFunction] int PointerDecay(int[], int(float))
# 996| <params>:
# 996| getParameter(0): [Parameter] a
# 996| Type = [ArrayType] int[]
# 996| getParameter(1): [Parameter] fn
# 996| Type = [RoutineType] ..()(..)
# 996| getEntryPoint(): [BlockStmt] { ... }
# 997| getStmt(0): [ReturnStmt] return ...
# 997| getExpr(): [AddExpr] ... + ...
# 997| Type = [IntType] int
# 997| ValueCategory = prvalue
# 997| getLeftOperand(): [ArrayExpr] access to array
# 997| Type = [IntType] int
# 997| ValueCategory = prvalue(load)
# 997| getArrayBase(): [VariableAccess] a
# 997| Type = [IntPointerType] int *
# 997| ValueCategory = prvalue(load)
# 997| getArrayOffset(): [Literal] 0
# 997| Type = [IntType] int
# 997| Value = [Literal] 0
# 997| ValueCategory = prvalue
# 997| getRightOperand(): [VariableCall] call to expression
# 997| Type = [IntType] int
# 997| ValueCategory = prvalue
# 997| getExpr(): [VariableAccess] fn
# 997| Type = [FunctionPointerType] ..(*)(..)
# 997| ValueCategory = prvalue(load)
# 997| getArgument(0): [Literal] 1.0
# 997| Type = [DoubleType] double
# 997| Value = [Literal] 1.0
# 997| ValueCategory = prvalue
# 997| getArgument(0).getFullyConverted(): [CStyleCast] (float)...
# 997| Conversion = [FloatingPointConversion] floating point conversion
# 997| Type = [FloatType] float
# 997| Value = [CStyleCast] 1.0
# 997| ValueCategory = prvalue
# 1000| [TopLevelFunction] int StmtExpr(int, int, int)
# 1000| <params>:
# 1000| getParameter(0): [Parameter] b
# 1000| Type = [IntType] int
# 1000| getParameter(1): [Parameter] y
# 1000| Type = [IntType] int
# 1000| getParameter(2): [Parameter] z
# 1000| Type = [IntType] int
# 1000| getEntryPoint(): [BlockStmt] { ... }
# 1001| getStmt(0): [DeclStmt] declaration
# 1001| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 1001| Type = [IntType] int
# 1001| getVariable().getInitializer(): [Initializer] initializer for x
# 1001| getExpr(): [StmtExpr] (statement expression)
# 1001| Type = [IntType] int
# 1001| ValueCategory = prvalue
# 1001| getStmt(): [BlockStmt] { ... }
# 1002| getStmt(0): [DeclStmt] declaration
# 1002| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w
# 1002| Type = [IntType] int
# 1003| getStmt(1): [IfStmt] if (...) ...
# 1003| getCondition(): [VariableAccess] b
# 1003| Type = [IntType] int
# 1003| ValueCategory = prvalue(load)
# 1003| getThen(): [BlockStmt] { ... }
# 1004| getStmt(0): [ExprStmt] ExprStmt
# 1004| getExpr(): [AssignExpr] ... = ...
# 1004| Type = [IntType] int
# 1004| ValueCategory = lvalue
# 1004| getLValue(): [VariableAccess] w
# 1004| Type = [IntType] int
# 1004| ValueCategory = lvalue
# 1004| getRValue(): [VariableAccess] y
# 1004| Type = [IntType] int
# 1004| ValueCategory = prvalue(load)
# 1005| getElse(): [BlockStmt] { ... }
# 1006| getStmt(0): [ExprStmt] ExprStmt
# 1006| getExpr(): [AssignExpr] ... = ...
# 1006| Type = [IntType] int
# 1006| ValueCategory = lvalue
# 1006| getLValue(): [VariableAccess] w
# 1006| Type = [IntType] int
# 1006| ValueCategory = lvalue
# 1006| getRValue(): [VariableAccess] z
# 1006| Type = [IntType] int
# 1006| ValueCategory = prvalue(load)
# 1003| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 1003| Conversion = [BoolConversion] conversion to bool
# 1003| Type = [BoolType] bool
# 1003| ValueCategory = prvalue
# 1008| getStmt(2): [ExprStmt] ExprStmt
# 1008| getExpr(): [VariableAccess] w
# 1008| Type = [IntType] int
# 1008| ValueCategory = prvalue(load)
# 1011| getStmt(1): [ReturnStmt] return ...
# 1011| getExpr(): [StmtExpr] (statement expression)
# 1011| Type = [IntType] int
# 1011| ValueCategory = prvalue
# 1011| getStmt(): [BlockStmt] { ... }
# 1011| getStmt(0): [ExprStmt] ExprStmt
# 1011| getExpr(): [VariableAccess] x
# 1011| Type = [IntType] int
# 1011| ValueCategory = prvalue(load)
# 1015| [TopLevelFunction] void OperatorDelete()
# 1015| <params>:
# 1015| getEntryPoint(): [BlockStmt] { ... }
# 1016| getStmt(0): [ExprStmt] ExprStmt
# 1016| getExpr(): [DeleteExpr] delete
# 1016| Type = [VoidType] void
# 1016| ValueCategory = prvalue
# 1016| getExpr(): [Literal] 0
# 1016| Type = [NullPointerType] decltype(nullptr)
# 1016| Value = [Literal] 0
# 1016| ValueCategory = prvalue
# 1016| getExpr().getFullyConverted(): [StaticCast] static_cast<int *>...
# 1016| Conversion = [PointerConversion] pointer conversion
# 1016| Type = [IntPointerType] int *
# 1016| Value = [StaticCast] 0
# 1016| ValueCategory = prvalue
# 1017| getStmt(1): [ExprStmt] ExprStmt
# 1017| getExpr(): [DeleteExpr] delete
# 1017| Type = [VoidType] void
# 1017| ValueCategory = prvalue
# 1017| getDestructorCall(): [DestructorCall] call to ~String
# 1017| Type = [VoidType] void
# 1017| ValueCategory = prvalue
# 1017| getQualifier(): [Literal] 0
# 1017| Type = [NullPointerType] decltype(nullptr)
# 1017| Value = [Literal] 0
# 1017| ValueCategory = prvalue
# 1017| getQualifier().getFullyConverted(): [StaticCast] static_cast<String *>...
# 1017| Conversion = [PointerConversion] pointer conversion
# 1017| Type = [PointerType] String *
# 1017| Value = [StaticCast] 0
# 1017| ValueCategory = prvalue
# 1018| getStmt(2): [ExprStmt] ExprStmt
# 1018| getExpr(): [DeleteExpr] delete
# 1018| Type = [VoidType] void
# 1018| ValueCategory = prvalue
# 1018| getAllocatorCall(): [FunctionCall] call to operator delete
# 1018| Type = [VoidType] void
# 1018| ValueCategory = prvalue
# 1018| getExpr(): [Literal] 0
# 1018| Type = [NullPointerType] decltype(nullptr)
# 1018| Value = [Literal] 0
# 1018| ValueCategory = prvalue
# 1018| getExpr().getFullyConverted(): [StaticCast] static_cast<SizedDealloc *>...
# 1018| Conversion = [PointerConversion] pointer conversion
# 1018| Type = [PointerType] SizedDealloc *
# 1018| Value = [StaticCast] 0
# 1018| ValueCategory = prvalue
# 1019| getStmt(3): [ExprStmt] ExprStmt
# 1019| getExpr(): [DeleteExpr] delete
# 1019| Type = [VoidType] void
# 1019| ValueCategory = prvalue
# 1019| getExpr(): [Literal] 0
# 1019| Type = [NullPointerType] decltype(nullptr)
# 1019| Value = [Literal] 0
# 1019| ValueCategory = prvalue
# 1019| getExpr().getFullyConverted(): [StaticCast] static_cast<Overaligned *>...
# 1019| Conversion = [PointerConversion] pointer conversion
# 1019| Type = [PointerType] Overaligned *
# 1019| Value = [StaticCast] 0
# 1019| ValueCategory = prvalue
# 1020| getStmt(4): [ExprStmt] ExprStmt
# 1020| getExpr(): [DeleteExpr] delete
# 1020| Type = [VoidType] void
# 1020| ValueCategory = prvalue
# 1020| getDestructorCall(): [DestructorCall] call to ~PolymorphicBase
# 1020| Type = [VoidType] void
# 1020| ValueCategory = prvalue
# 1020| getQualifier(): [Literal] 0
# 1020| Type = [NullPointerType] decltype(nullptr)
# 1020| Value = [Literal] 0
# 1020| ValueCategory = prvalue
# 1020| getQualifier().getFullyConverted(): [StaticCast] static_cast<PolymorphicBase *>...
# 1020| Conversion = [PointerConversion] pointer conversion
# 1020| Type = [PointerType] PolymorphicBase *
# 1020| Value = [StaticCast] 0
# 1020| ValueCategory = prvalue
# 1021| getStmt(5): [ReturnStmt] return ...
# 1024| [TopLevelFunction] void OperatorDeleteArray()
# 1024| <params>:
# 1024| getEntryPoint(): [BlockStmt] { ... }
# 1025| getStmt(0): [ExprStmt] ExprStmt
# 1025| getExpr(): [DeleteArrayExpr] delete[]
# 1025| Type = [VoidType] void
# 1025| ValueCategory = prvalue
# 1025| getExpr(): [Literal] 0
# 1025| Type = [NullPointerType] decltype(nullptr)
# 1025| Value = [Literal] 0
# 1025| ValueCategory = prvalue
# 1025| getExpr().getFullyConverted(): [StaticCast] static_cast<int *>...
# 1025| Conversion = [PointerConversion] pointer conversion
# 1025| Type = [IntPointerType] int *
# 1025| Value = [StaticCast] 0
# 1025| ValueCategory = prvalue
# 1026| getStmt(1): [ExprStmt] ExprStmt
# 1026| getExpr(): [DeleteArrayExpr] delete[]
# 1026| Type = [VoidType] void
# 1026| ValueCategory = prvalue
# 1026| getDestructorCall(): [DestructorCall] call to ~String
# 1026| Type = [VoidType] void
# 1026| ValueCategory = prvalue
# 1026| getQualifier(): [Literal] 0
# 1026| Type = [NullPointerType] decltype(nullptr)
# 1026| Value = [Literal] 0
# 1026| ValueCategory = prvalue
# 1026| getQualifier().getFullyConverted(): [StaticCast] static_cast<String *>...
# 1026| Conversion = [PointerConversion] pointer conversion
# 1026| Type = [PointerType] String *
# 1026| Value = [StaticCast] 0
# 1026| ValueCategory = prvalue
# 1027| getStmt(2): [ExprStmt] ExprStmt
# 1027| getExpr(): [DeleteArrayExpr] delete[]
# 1027| Type = [VoidType] void
# 1027| ValueCategory = prvalue
# 1027| getAllocatorCall(): [FunctionCall] call to operator delete[]
# 1027| Type = [VoidType] void
# 1027| ValueCategory = prvalue
# 1027| getExpr(): [Literal] 0
# 1027| Type = [NullPointerType] decltype(nullptr)
# 1027| Value = [Literal] 0
# 1027| ValueCategory = prvalue
# 1027| getExpr().getFullyConverted(): [StaticCast] static_cast<SizedDealloc *>...
# 1027| Conversion = [PointerConversion] pointer conversion
# 1027| Type = [PointerType] SizedDealloc *
# 1027| Value = [StaticCast] 0
# 1027| ValueCategory = prvalue
# 1028| getStmt(3): [ExprStmt] ExprStmt
# 1028| getExpr(): [DeleteArrayExpr] delete[]
# 1028| Type = [VoidType] void
# 1028| ValueCategory = prvalue
# 1028| getExpr(): [Literal] 0
# 1028| Type = [NullPointerType] decltype(nullptr)
# 1028| Value = [Literal] 0
# 1028| ValueCategory = prvalue
# 1028| getExpr().getFullyConverted(): [StaticCast] static_cast<Overaligned *>...
# 1028| Conversion = [PointerConversion] pointer conversion
# 1028| Type = [PointerType] Overaligned *
# 1028| Value = [StaticCast] 0
# 1028| ValueCategory = prvalue
# 1029| getStmt(4): [ExprStmt] ExprStmt
# 1029| getExpr(): [DeleteArrayExpr] delete[]
# 1029| Type = [VoidType] void
# 1029| ValueCategory = prvalue
# 1029| getDestructorCall(): [DestructorCall] call to ~PolymorphicBase
# 1029| Type = [VoidType] void
# 1029| ValueCategory = prvalue
# 1029| getQualifier(): [Literal] 0
# 1029| Type = [NullPointerType] decltype(nullptr)
# 1029| Value = [Literal] 0
# 1029| ValueCategory = prvalue
# 1029| getQualifier().getFullyConverted(): [StaticCast] static_cast<PolymorphicBase *>...
# 1029| Conversion = [PointerConversion] pointer conversion
# 1029| Type = [PointerType] PolymorphicBase *
# 1029| Value = [StaticCast] 0
# 1029| ValueCategory = prvalue
# 1030| getStmt(5): [ReturnStmt] return ...
# 1032| [CopyAssignmentOperator] EmptyStruct& EmptyStruct::operator=(EmptyStruct const&)
# 1032| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const EmptyStruct &
# 1032| [MoveAssignmentOperator] EmptyStruct& EmptyStruct::operator=(EmptyStruct&&)
# 1032| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] EmptyStruct &&
# 1034| [TopLevelFunction] void EmptyStructInit()
# 1034| <params>:
# 1034| getEntryPoint(): [BlockStmt] { ... }
# 1035| getStmt(0): [DeclStmt] declaration
# 1035| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s
# 1035| Type = [Struct] EmptyStruct
# 1035| getVariable().getInitializer(): [Initializer] initializer for s
# 1035| getExpr(): [ClassAggregateLiteral] {...}
# 1035| Type = [Struct] EmptyStruct
# 1035| ValueCategory = prvalue
# 1036| getStmt(1): [ReturnStmt] return ...
# 1038| [CopyAssignmentOperator] (lambda [] type at line 1038, col. 12)& (lambda [] type at line 1038, col. 12)::operator=((lambda [] type at line 1038, col. 12) const&)
# 1038| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1038, col. 12 &
# 1038| [CopyConstructor] void (lambda [] type at line 1038, col. 12)::(unnamed constructor)((lambda [] type at line 1038, col. 12) const&)
# 1038| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1038, col. 12 &
# 1038| [MoveConstructor] void (lambda [] type at line 1038, col. 12)::(unnamed constructor)((lambda [] type at line 1038, col. 12)&&)
# 1038| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] lambda [] type at line 1038, col. 12 &&
# 1038| [Constructor] void (lambda [] type at line 1038, col. 12)::(unnamed constructor)()
# 1038| <params>:
# 1038| [MemberFunction] void (lambda [] type at line 1038, col. 12)::_FUN()
# 1038| <params>:
# 1038| [ConstMemberFunction] void (lambda [] type at line 1038, col. 12)::operator()() const
# 1038| <params>:
# 1038| getEntryPoint(): [BlockStmt] { ... }
# 1038| getStmt(0): [ReturnStmt] return ...
# 1038| [ConstMemberFunction,ConversionOperator] void(* (lambda [] type at line 1038, col. 12)::operator void (*)()() const)()
# 1038| <params>:
#-----| getEntryPoint(): [BlockStmt] { ... }
# 1038| getStmt(0): [ReturnStmt] return ...
# 1038| getExpr(): [FunctionAccess] _FUN
# 1038| Type = [FunctionPointerType] ..(*)(..)
# 1038| ValueCategory = prvalue(load)
# 1040| [TopLevelFunction] void Lambda(int, String const&)
# 1040| <params>:
# 1040| getParameter(0): [Parameter] x
# 1040| Type = [IntType] int
# 1040| getParameter(1): [Parameter] s
# 1040| Type = [LValueReferenceType] const String &
# 1040| getEntryPoint(): [BlockStmt] { ... }
# 1041| getStmt(0): [DeclStmt] declaration
# 1041| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_empty
# 1041| Type = [Closure,LocalClass] decltype([...](...){...})
# 1041| getVariable().getInitializer(): [Initializer] initializer for lambda_empty
# 1041| getExpr(): [LambdaExpression] [...](...){...}
# 1041| Type = [Closure,LocalClass] decltype([...](...){...})
# 1041| ValueCategory = prvalue
# 1042| getStmt(1): [ExprStmt] ExprStmt
# 1042| getExpr(): [FunctionCall] call to operator()
# 1042| Type = [PlainCharType] char
# 1042| Value = [FunctionCall] 65
# 1042| ValueCategory = prvalue
# 1042| getQualifier(): [VariableAccess] lambda_empty
# 1042| Type = [Closure,LocalClass] decltype([...](...){...})
# 1042| ValueCategory = lvalue
# 1042| getArgument(0): [Literal] 0
# 1042| Type = [IntType] int
# 1042| Value = [Literal] 0
# 1042| ValueCategory = prvalue
# 1042| getQualifier().getFullyConverted(): [CStyleCast] (const lambda [] type at line 1041, col. 23)...
# 1042| Conversion = [GlvalueConversion] glvalue conversion
# 1042| Type = [SpecifiedType] const lambda [] type at line 1041, col. 23
# 1042| ValueCategory = lvalue
# 1042| getArgument(0).getFullyConverted(): [CStyleCast] (float)...
# 1042| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 1042| Type = [FloatType] float
# 1042| Value = [CStyleCast] 0.0
# 1042| ValueCategory = prvalue
# 1043| getStmt(2): [DeclStmt] declaration
# 1043| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_ref
# 1043| Type = [Closure,LocalClass] decltype([...](...){...})
# 1043| getVariable().getInitializer(): [Initializer] initializer for lambda_ref
# 1043| getExpr(): [LambdaExpression] [...](...){...}
# 1043| Type = [Closure,LocalClass] decltype([...](...){...})
# 1043| ValueCategory = prvalue
# 1043| getInitializer(): [ClassAggregateLiteral] {...}
# 1043| Type = [Closure,LocalClass] decltype([...](...){...})
# 1043| ValueCategory = prvalue
# 1043| getFieldExpr(s): [VariableAccess] s
# 1043| Type = [LValueReferenceType] const String &
# 1043| ValueCategory = prvalue(load)
# 1043| getFieldExpr(x): [VariableAccess] x
# 1043| Type = [IntType] int
# 1043| ValueCategory = lvalue
# 1043| getFieldExpr(s).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1043| Type = [LValueReferenceType] const String &
# 1043| ValueCategory = prvalue
# 1043| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 1043| Type = [SpecifiedType] const String
# 1043| ValueCategory = lvalue
#-----| getFieldExpr(x).getFullyConverted(): [ReferenceToExpr] (reference to)
#-----| Type = [LValueReferenceType] int &
#-----| ValueCategory = prvalue
# 1044| getStmt(3): [ExprStmt] ExprStmt
# 1044| getExpr(): [FunctionCall] call to operator()
# 1044| Type = [PlainCharType] char
# 1044| ValueCategory = prvalue
# 1044| getQualifier(): [VariableAccess] lambda_ref
# 1044| Type = [Closure,LocalClass] decltype([...](...){...})
# 1044| ValueCategory = lvalue
# 1044| getArgument(0): [Literal] 1
# 1044| Type = [IntType] int
# 1044| Value = [Literal] 1
# 1044| ValueCategory = prvalue
# 1044| getQualifier().getFullyConverted(): [CStyleCast] (const lambda [] type at line 1043, col. 21)...
# 1044| Conversion = [GlvalueConversion] glvalue conversion
# 1044| Type = [SpecifiedType] const lambda [] type at line 1043, col. 21
# 1044| ValueCategory = lvalue
# 1044| getArgument(0).getFullyConverted(): [CStyleCast] (float)...
# 1044| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 1044| Type = [FloatType] float
# 1044| Value = [CStyleCast] 1.0
# 1044| ValueCategory = prvalue
# 1045| getStmt(4): [DeclStmt] declaration
# 1045| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_val
# 1045| Type = [Closure,LocalClass] decltype([...](...){...})
# 1045| getVariable().getInitializer(): [Initializer] initializer for lambda_val
# 1045| getExpr(): [LambdaExpression] [...](...){...}
# 1045| Type = [Closure,LocalClass] decltype([...](...){...})
# 1045| ValueCategory = prvalue
# 1045| getInitializer(): [ClassAggregateLiteral] {...}
# 1045| Type = [Closure,LocalClass] decltype([...](...){...})
# 1045| ValueCategory = prvalue
# 1045| getFieldExpr(s): [ConstructorCall] call to String
# 1045| Type = [VoidType] void
# 1045| ValueCategory = prvalue
# 1045| getFieldExpr(x): [VariableAccess] x
# 1045| Type = [IntType] int
# 1045| ValueCategory = prvalue(load)
# 1046| getStmt(5): [ExprStmt] ExprStmt
# 1046| getExpr(): [FunctionCall] call to operator()
# 1046| Type = [PlainCharType] char
# 1046| ValueCategory = prvalue
# 1046| getQualifier(): [VariableAccess] lambda_val
# 1046| Type = [Closure,LocalClass] decltype([...](...){...})
# 1046| ValueCategory = lvalue
# 1046| getArgument(0): [Literal] 2
# 1046| Type = [IntType] int
# 1046| Value = [Literal] 2
# 1046| ValueCategory = prvalue
# 1046| getQualifier().getFullyConverted(): [CStyleCast] (const lambda [] type at line 1045, col. 21)...
# 1046| Conversion = [GlvalueConversion] glvalue conversion
# 1046| Type = [SpecifiedType] const lambda [] type at line 1045, col. 21
# 1046| ValueCategory = lvalue
# 1046| getArgument(0).getFullyConverted(): [CStyleCast] (float)...
# 1046| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 1046| Type = [FloatType] float
# 1046| Value = [CStyleCast] 2.0
# 1046| ValueCategory = prvalue
# 1047| getStmt(6): [DeclStmt] declaration
# 1047| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_ref_explicit
# 1047| Type = [Closure,LocalClass] decltype([...](...){...})
# 1047| getVariable().getInitializer(): [Initializer] initializer for lambda_ref_explicit
# 1047| getExpr(): [LambdaExpression] [...](...){...}
# 1047| Type = [Closure,LocalClass] decltype([...](...){...})
# 1047| ValueCategory = prvalue
# 1047| getInitializer(): [ClassAggregateLiteral] {...}
# 1047| Type = [Closure,LocalClass] decltype([...](...){...})
# 1047| ValueCategory = prvalue
# 1047| getFieldExpr(s): [VariableAccess] s
# 1047| Type = [LValueReferenceType] const String &
# 1047| ValueCategory = prvalue(load)
# 1047| getFieldExpr(s).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1047| Type = [LValueReferenceType] const String &
# 1047| ValueCategory = prvalue
# 1047| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 1047| Type = [SpecifiedType] const String
# 1047| ValueCategory = lvalue
# 1048| getStmt(7): [ExprStmt] ExprStmt
# 1048| getExpr(): [FunctionCall] call to operator()
# 1048| Type = [PlainCharType] char
# 1048| ValueCategory = prvalue
# 1048| getQualifier(): [VariableAccess] lambda_ref_explicit
# 1048| Type = [Closure,LocalClass] decltype([...](...){...})
# 1048| ValueCategory = lvalue
# 1048| getArgument(0): [Literal] 3
# 1048| Type = [IntType] int
# 1048| Value = [Literal] 3
# 1048| ValueCategory = prvalue
# 1048| getQualifier().getFullyConverted(): [CStyleCast] (const lambda [] type at line 1047, col. 30)...
# 1048| Conversion = [GlvalueConversion] glvalue conversion
# 1048| Type = [SpecifiedType] const lambda [] type at line 1047, col. 30
# 1048| ValueCategory = lvalue
# 1048| getArgument(0).getFullyConverted(): [CStyleCast] (float)...
# 1048| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 1048| Type = [FloatType] float
# 1048| Value = [CStyleCast] 3.0
# 1048| ValueCategory = prvalue
# 1049| getStmt(8): [DeclStmt] declaration
# 1049| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_val_explicit
# 1049| Type = [Closure,LocalClass] decltype([...](...){...})
# 1049| getVariable().getInitializer(): [Initializer] initializer for lambda_val_explicit
# 1049| getExpr(): [LambdaExpression] [...](...){...}
# 1049| Type = [Closure,LocalClass] decltype([...](...){...})
# 1049| ValueCategory = prvalue
# 1049| getInitializer(): [ClassAggregateLiteral] {...}
# 1049| Type = [Closure,LocalClass] decltype([...](...){...})
# 1049| ValueCategory = prvalue
# 1049| getFieldExpr(s): [ConstructorCall] call to String
# 1049| Type = [VoidType] void
# 1049| ValueCategory = prvalue
# 1050| getStmt(9): [ExprStmt] ExprStmt
# 1050| getExpr(): [FunctionCall] call to operator()
# 1050| Type = [PlainCharType] char
# 1050| ValueCategory = prvalue
# 1050| getQualifier(): [VariableAccess] lambda_val_explicit
# 1050| Type = [Closure,LocalClass] decltype([...](...){...})
# 1050| ValueCategory = lvalue
# 1050| getArgument(0): [Literal] 4
# 1050| Type = [IntType] int
# 1050| Value = [Literal] 4
# 1050| ValueCategory = prvalue
# 1050| getQualifier().getFullyConverted(): [CStyleCast] (const lambda [] type at line 1049, col. 30)...
# 1050| Conversion = [GlvalueConversion] glvalue conversion
# 1050| Type = [SpecifiedType] const lambda [] type at line 1049, col. 30
# 1050| ValueCategory = lvalue
# 1050| getArgument(0).getFullyConverted(): [CStyleCast] (float)...
# 1050| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 1050| Type = [FloatType] float
# 1050| Value = [CStyleCast] 4.0
# 1050| ValueCategory = prvalue
# 1051| getStmt(10): [DeclStmt] declaration
# 1051| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_mixed_explicit
# 1051| Type = [Closure,LocalClass] decltype([...](...){...})
# 1051| getVariable().getInitializer(): [Initializer] initializer for lambda_mixed_explicit
# 1051| getExpr(): [LambdaExpression] [...](...){...}
# 1051| Type = [Closure,LocalClass] decltype([...](...){...})
# 1051| ValueCategory = prvalue
# 1051| getInitializer(): [ClassAggregateLiteral] {...}
# 1051| Type = [Closure,LocalClass] decltype([...](...){...})
# 1051| ValueCategory = prvalue
# 1051| getFieldExpr(s): [VariableAccess] s
# 1051| Type = [LValueReferenceType] const String &
# 1051| ValueCategory = prvalue(load)
# 1051| getFieldExpr(x): [VariableAccess] x
# 1051| Type = [IntType] int
# 1051| ValueCategory = prvalue(load)
# 1051| getFieldExpr(s).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1051| Type = [LValueReferenceType] const String &
# 1051| ValueCategory = prvalue
# 1051| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 1051| Type = [SpecifiedType] const String
# 1051| ValueCategory = lvalue
# 1052| getStmt(11): [ExprStmt] ExprStmt
# 1052| getExpr(): [FunctionCall] call to operator()
# 1052| Type = [PlainCharType] char
# 1052| ValueCategory = prvalue
# 1052| getQualifier(): [VariableAccess] lambda_mixed_explicit
# 1052| Type = [Closure,LocalClass] decltype([...](...){...})
# 1052| ValueCategory = lvalue
# 1052| getArgument(0): [Literal] 5
# 1052| Type = [IntType] int
# 1052| Value = [Literal] 5
# 1052| ValueCategory = prvalue
# 1052| getQualifier().getFullyConverted(): [CStyleCast] (const lambda [] type at line 1051, col. 32)...
# 1052| Conversion = [GlvalueConversion] glvalue conversion
# 1052| Type = [SpecifiedType] const lambda [] type at line 1051, col. 32
# 1052| ValueCategory = lvalue
# 1052| getArgument(0).getFullyConverted(): [CStyleCast] (float)...
# 1052| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 1052| Type = [FloatType] float
# 1052| Value = [CStyleCast] 5.0
# 1052| ValueCategory = prvalue
# 1053| getStmt(12): [DeclStmt] declaration
# 1053| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r
# 1053| Type = [IntType] int
# 1053| getVariable().getInitializer(): [Initializer] initializer for r
# 1053| getExpr(): [SubExpr] ... - ...
# 1053| Type = [IntType] int
# 1053| ValueCategory = prvalue
# 1053| getLeftOperand(): [VariableAccess] x
# 1053| Type = [IntType] int
# 1053| ValueCategory = prvalue(load)
# 1053| getRightOperand(): [Literal] 1
# 1053| Type = [IntType] int
# 1053| Value = [Literal] 1
# 1053| ValueCategory = prvalue
# 1054| getStmt(13): [DeclStmt] declaration
# 1054| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_inits
# 1054| Type = [Closure,LocalClass] decltype([...](...){...})
# 1054| getVariable().getInitializer(): [Initializer] initializer for lambda_inits
# 1054| getExpr(): [LambdaExpression] [...](...){...}
# 1054| Type = [Closure,LocalClass] decltype([...](...){...})
# 1054| ValueCategory = prvalue
# 1054| getInitializer(): [ClassAggregateLiteral] {...}
# 1054| Type = [Closure,LocalClass] decltype([...](...){...})
# 1054| ValueCategory = prvalue
# 1054| getFieldExpr(s): [VariableAccess] s
# 1054| Type = [LValueReferenceType] const String &
# 1054| ValueCategory = prvalue(load)
# 1054| getFieldExpr(x): [VariableAccess] x
# 1054| Type = [IntType] int
# 1054| ValueCategory = prvalue(load)
# 1054| getFieldExpr(i): [AddExpr] ... + ...
# 1054| Type = [IntType] int
# 1054| ValueCategory = prvalue
# 1054| getLeftOperand(): [VariableAccess] x
# 1054| Type = [IntType] int
# 1054| ValueCategory = prvalue(load)
# 1054| getRightOperand(): [Literal] 1
# 1054| Type = [IntType] int
# 1054| Value = [Literal] 1
# 1054| ValueCategory = prvalue
# 1054| getFieldExpr(j): [VariableAccess] r
# 1054| Type = [IntType] int
# 1054| ValueCategory = lvalue
# 1054| getFieldExpr(s).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1054| Type = [LValueReferenceType] const String &
# 1054| ValueCategory = prvalue
# 1054| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 1054| Type = [SpecifiedType] const String
# 1054| ValueCategory = lvalue
# 1054| getFieldExpr(j).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1054| Type = [LValueReferenceType] int &
# 1054| ValueCategory = prvalue
# 1055| getStmt(14): [ExprStmt] ExprStmt
# 1055| getExpr(): [FunctionCall] call to operator()
# 1055| Type = [PlainCharType] char
# 1055| ValueCategory = prvalue
# 1055| getQualifier(): [VariableAccess] lambda_inits
# 1055| Type = [Closure,LocalClass] decltype([...](...){...})
# 1055| ValueCategory = lvalue
# 1055| getArgument(0): [Literal] 6
# 1055| Type = [IntType] int
# 1055| Value = [Literal] 6
# 1055| ValueCategory = prvalue
# 1055| getQualifier().getFullyConverted(): [CStyleCast] (const lambda [] type at line 1054, col. 23)...
# 1055| Conversion = [GlvalueConversion] glvalue conversion
# 1055| Type = [SpecifiedType] const lambda [] type at line 1054, col. 23
# 1055| ValueCategory = lvalue
# 1055| getArgument(0).getFullyConverted(): [CStyleCast] (float)...
# 1055| Conversion = [IntegralToFloatingPointConversion] integral to floating point conversion
# 1055| Type = [FloatType] float
# 1055| Value = [CStyleCast] 6.0
# 1055| ValueCategory = prvalue
# 1056| getStmt(15): [ReturnStmt] return ...
# 1041| [CopyAssignmentOperator] (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)& (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::operator=((void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23) const&)
# 1041| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1041, col. 23 &
# 1041| [CopyConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23) const&)
# 1041| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1041, col. 23 &
# 1041| [MoveConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)&&)
# 1041| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] lambda [] type at line 1041, col. 23 &&
# 1041| [Constructor] void (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::(unnamed constructor)()
# 1041| <params>:
# 1041| [MemberFunction] char (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::_FUN(float)
# 1041| <params>:
# 1041| getParameter(0): [Parameter] f
# 1041| Type = [FloatType] float
# 1041| [ConstMemberFunction] char (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::operator()(float) const
# 1041| <params>:
# 1041| getParameter(0): [Parameter] f
# 1041| Type = [FloatType] float
# 1041| getEntryPoint(): [BlockStmt] { ... }
# 1041| getStmt(0): [ReturnStmt] return ...
# 1041| getExpr(): [CharLiteral] 65
# 1041| Type = [PlainCharType] char
# 1041| Value = [CharLiteral] 65
# 1041| ValueCategory = prvalue
# 1041| [ConstMemberFunction,ConversionOperator] char(* (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::operator char (*)(float)() const)(float)
# 1041| <params>:
#-----| getEntryPoint(): [BlockStmt] { ... }
# 1041| getStmt(0): [ReturnStmt] return ...
# 1041| getExpr(): [FunctionAccess] _FUN
# 1041| Type = [FunctionPointerType] ..(*)(..)
# 1041| ValueCategory = prvalue(load)
# 1043| [CopyAssignmentOperator] (void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)& (void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)::operator=((void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21) const&)
# 1043| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1043, col. 21 &
# 1043| [CopyConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21) const&)
# 1043| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1043, col. 21 &
# 1043| [MoveConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)&&)
# 1043| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] lambda [] type at line 1043, col. 21 &&
# 1043| [Constructor] void (void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)::(unnamed constructor)()
# 1043| <params>:
# 1043| [ConstMemberFunction] char (void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)::operator()(float) const
# 1043| <params>:
# 1043| getParameter(0): [Parameter] f
# 1043| Type = [FloatType] float
# 1043| getEntryPoint(): [BlockStmt] { ... }
# 1043| getStmt(0): [ReturnStmt] return ...
# 1043| getExpr(): [ArrayExpr] access to array
# 1043| Type = [PlainCharType] char
# 1043| ValueCategory = prvalue(load)
# 1043| getArrayBase(): [FunctionCall] call to c_str
# 1043| Type = [PointerType] const char *
# 1043| ValueCategory = prvalue
# 1043| getQualifier(): [PointerFieldAccess] s
# 1043| Type = [LValueReferenceType] const String &
# 1043| ValueCategory = prvalue(load)
# 1043| getQualifier(): [ThisExpr] this
# 1043| Type = [PointerType] const lambda [] type at line 1043, col. 21 *
# 1043| ValueCategory = prvalue(load)
# 1043| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1043| Type = [SpecifiedType] const String
# 1043| ValueCategory = lvalue
# 1043| getArrayOffset(): [PointerFieldAccess] x
# 1043| Type = [LValueReferenceType] int &
# 1043| ValueCategory = prvalue(load)
# 1043| getQualifier(): [ThisExpr] this
# 1043| Type = [PointerType] const lambda [] type at line 1043, col. 21 *
# 1043| ValueCategory = prvalue(load)
# 1043| getArrayOffset().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1043| Type = [IntType] int
# 1043| ValueCategory = prvalue(load)
# 1045| [CopyAssignmentOperator] (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)& (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::operator=((void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21) const&)
# 1045| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1045, col. 21 &
# 1045| [CopyConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21) const&)
# 1045| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1045, col. 21 &
# 1045| [MoveConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)&&)
# 1045| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] lambda [] type at line 1045, col. 21 &&
# 1045| [Constructor] void (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::(unnamed constructor)()
# 1045| <params>:
# 1045| [Destructor] void (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::~<unnamed>()
# 1045| <params>:
#-----| getEntryPoint(): [BlockStmt] { ... }
#-----| getStmt(0): [ReturnStmt] return ...
# 1045| <destructions>:
# 1045| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of s
# 1045| Type = [SpecifiedType] const String
# 1045| ValueCategory = prvalue
# 1045| getExpr(): [DestructorCall] call to ~String
# 1045| Type = [VoidType] void
# 1045| ValueCategory = prvalue
# 1045| getQualifier(): [ImplicitThisFieldAccess] s
# 1045| Type = [SpecifiedType] const String
# 1045| ValueCategory = lvalue
# 1045| [ConstMemberFunction] char (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::operator()(float) const
# 1045| <params>:
# 1045| getParameter(0): [Parameter] f
# 1045| Type = [FloatType] float
# 1045| getEntryPoint(): [BlockStmt] { ... }
# 1045| getStmt(0): [ReturnStmt] return ...
# 1045| getExpr(): [ArrayExpr] access to array
# 1045| Type = [PlainCharType] char
# 1045| ValueCategory = prvalue(load)
# 1045| getArrayBase(): [FunctionCall] call to c_str
# 1045| Type = [PointerType] const char *
# 1045| ValueCategory = prvalue
# 1045| getQualifier(): [PointerFieldAccess] s
# 1045| Type = [SpecifiedType] const String
# 1045| ValueCategory = lvalue
# 1045| getQualifier(): [ThisExpr] this
# 1045| Type = [PointerType] const lambda [] type at line 1045, col. 21 *
# 1045| ValueCategory = prvalue(load)
# 1045| getArrayOffset(): [PointerFieldAccess] x
# 1045| Type = [IntType] int
# 1045| ValueCategory = prvalue(load)
# 1045| getQualifier(): [ThisExpr] this
# 1045| Type = [PointerType] const lambda [] type at line 1045, col. 21 *
# 1045| ValueCategory = prvalue(load)
# 1047| [CopyAssignmentOperator] (void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)& (void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)::operator=((void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30) const&)
# 1047| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1047, col. 30 &
# 1047| [CopyConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30) const&)
# 1047| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1047, col. 30 &
# 1047| [MoveConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)&&)
# 1047| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] lambda [] type at line 1047, col. 30 &&
# 1047| [Constructor] void (void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)::(unnamed constructor)()
# 1047| <params>:
# 1047| [ConstMemberFunction] char (void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)::operator()(float) const
# 1047| <params>:
# 1047| getParameter(0): [Parameter] f
# 1047| Type = [FloatType] float
# 1047| getEntryPoint(): [BlockStmt] { ... }
# 1047| getStmt(0): [ReturnStmt] return ...
# 1047| getExpr(): [ArrayExpr] access to array
# 1047| Type = [PlainCharType] char
# 1047| ValueCategory = prvalue(load)
# 1047| getArrayBase(): [FunctionCall] call to c_str
# 1047| Type = [PointerType] const char *
# 1047| ValueCategory = prvalue
# 1047| getQualifier(): [PointerFieldAccess] s
# 1047| Type = [LValueReferenceType] const String &
# 1047| ValueCategory = prvalue(load)
# 1047| getQualifier(): [ThisExpr] this
# 1047| Type = [PointerType] const lambda [] type at line 1047, col. 30 *
# 1047| ValueCategory = prvalue(load)
# 1047| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1047| Type = [SpecifiedType] const String
# 1047| ValueCategory = lvalue
# 1047| getArrayOffset(): [Literal] 0
# 1047| Type = [IntType] int
# 1047| Value = [Literal] 0
# 1047| ValueCategory = prvalue
# 1049| [CopyAssignmentOperator] (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)& (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::operator=((void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30) const&)
# 1049| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1049, col. 30 &
# 1049| [CopyConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30) const&)
# 1049| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1049, col. 30 &
# 1049| [MoveConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)&&)
# 1049| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] lambda [] type at line 1049, col. 30 &&
# 1049| [Constructor] void (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::(unnamed constructor)()
# 1049| <params>:
# 1049| [Destructor] void (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::~<unnamed>()
# 1049| <params>:
#-----| getEntryPoint(): [BlockStmt] { ... }
#-----| getStmt(0): [ReturnStmt] return ...
# 1049| <destructions>:
# 1049| getDestruction(0): [DestructorFieldDestruction] destructor field destruction of s
# 1049| Type = [SpecifiedType] const String
# 1049| ValueCategory = prvalue
# 1049| getExpr(): [DestructorCall] call to ~String
# 1049| Type = [VoidType] void
# 1049| ValueCategory = prvalue
# 1049| getQualifier(): [ImplicitThisFieldAccess] s
# 1049| Type = [SpecifiedType] const String
# 1049| ValueCategory = lvalue
# 1049| [ConstMemberFunction] char (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::operator()(float) const
# 1049| <params>:
# 1049| getParameter(0): [Parameter] f
# 1049| Type = [FloatType] float
# 1049| getEntryPoint(): [BlockStmt] { ... }
# 1049| getStmt(0): [ReturnStmt] return ...
# 1049| getExpr(): [ArrayExpr] access to array
# 1049| Type = [PlainCharType] char
# 1049| ValueCategory = prvalue(load)
# 1049| getArrayBase(): [FunctionCall] call to c_str
# 1049| Type = [PointerType] const char *
# 1049| ValueCategory = prvalue
# 1049| getQualifier(): [PointerFieldAccess] s
# 1049| Type = [SpecifiedType] const String
# 1049| ValueCategory = lvalue
# 1049| getQualifier(): [ThisExpr] this
# 1049| Type = [PointerType] const lambda [] type at line 1049, col. 30 *
# 1049| ValueCategory = prvalue(load)
# 1049| getArrayOffset(): [Literal] 0
# 1049| Type = [IntType] int
# 1049| Value = [Literal] 0
# 1049| ValueCategory = prvalue
# 1051| [CopyAssignmentOperator] (void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)& (void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)::operator=((void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32) const&)
# 1051| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1051, col. 32 &
# 1051| [CopyConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32) const&)
# 1051| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1051, col. 32 &
# 1051| [MoveConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)&&)
# 1051| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] lambda [] type at line 1051, col. 32 &&
# 1051| [Constructor] void (void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)::(unnamed constructor)()
# 1051| <params>:
# 1051| [ConstMemberFunction] char (void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)::operator()(float) const
# 1051| <params>:
# 1051| getParameter(0): [Parameter] f
# 1051| Type = [FloatType] float
# 1051| getEntryPoint(): [BlockStmt] { ... }
# 1051| getStmt(0): [ReturnStmt] return ...
# 1051| getExpr(): [ArrayExpr] access to array
# 1051| Type = [PlainCharType] char
# 1051| ValueCategory = prvalue(load)
# 1051| getArrayBase(): [FunctionCall] call to c_str
# 1051| Type = [PointerType] const char *
# 1051| ValueCategory = prvalue
# 1051| getQualifier(): [PointerFieldAccess] s
# 1051| Type = [LValueReferenceType] const String &
# 1051| ValueCategory = prvalue(load)
# 1051| getQualifier(): [ThisExpr] this
# 1051| Type = [PointerType] const lambda [] type at line 1051, col. 32 *
# 1051| ValueCategory = prvalue(load)
# 1051| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1051| Type = [SpecifiedType] const String
# 1051| ValueCategory = lvalue
# 1051| getArrayOffset(): [PointerFieldAccess] x
# 1051| Type = [IntType] int
# 1051| ValueCategory = prvalue(load)
# 1051| getQualifier(): [ThisExpr] this
# 1051| Type = [PointerType] const lambda [] type at line 1051, col. 32 *
# 1051| ValueCategory = prvalue(load)
# 1054| [CopyAssignmentOperator] (void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)& (void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)::operator=((void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23) const&)
# 1054| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1054, col. 23 &
# 1054| [CopyConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23) const&)
# 1054| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const lambda [] type at line 1054, col. 23 &
# 1054| [MoveConstructor] void (void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)&&)
# 1054| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] lambda [] type at line 1054, col. 23 &&
# 1054| [Constructor] void (void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)::(unnamed constructor)()
# 1054| <params>:
# 1054| [ConstMemberFunction] char (void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)::operator()(float) const
# 1054| <params>:
# 1054| getParameter(0): [Parameter] f
# 1054| Type = [FloatType] float
# 1054| getEntryPoint(): [BlockStmt] { ... }
# 1054| getStmt(0): [ReturnStmt] return ...
# 1054| getExpr(): [ArrayExpr] access to array
# 1054| Type = [PlainCharType] char
# 1054| ValueCategory = prvalue(load)
# 1054| getArrayBase(): [FunctionCall] call to c_str
# 1054| Type = [PointerType] const char *
# 1054| ValueCategory = prvalue
# 1054| getQualifier(): [PointerFieldAccess] s
# 1054| Type = [LValueReferenceType] const String &
# 1054| ValueCategory = prvalue(load)
# 1054| getQualifier(): [ThisExpr] this
# 1054| Type = [PointerType] const lambda [] type at line 1054, col. 23 *
# 1054| ValueCategory = prvalue(load)
# 1054| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1054| Type = [SpecifiedType] const String
# 1054| ValueCategory = lvalue
# 1054| getArrayOffset(): [SubExpr] ... - ...
# 1054| Type = [IntType] int
# 1054| ValueCategory = prvalue
# 1054| getLeftOperand(): [AddExpr] ... + ...
# 1054| Type = [IntType] int
# 1054| ValueCategory = prvalue
# 1054| getLeftOperand(): [PointerFieldAccess] x
# 1054| Type = [IntType] int
# 1054| ValueCategory = prvalue(load)
# 1054| getQualifier(): [ThisExpr] this
# 1054| Type = [PointerType] const lambda [] type at line 1054, col. 23 *
# 1054| ValueCategory = prvalue(load)
# 1054| getRightOperand(): [PointerFieldAccess] i
# 1054| Type = [IntType] int
# 1054| ValueCategory = prvalue(load)
# 1054| getQualifier(): [ThisExpr] this
# 1054| Type = [PointerType] const lambda [] type at line 1054, col. 23 *
# 1054| ValueCategory = prvalue(load)
# 1054| getRightOperand(): [PointerFieldAccess] j
# 1054| Type = [LValueReferenceType] int &
# 1054| ValueCategory = prvalue(load)
# 1054| getQualifier(): [ThisExpr] this
# 1054| Type = [PointerType] const lambda [] type at line 1054, col. 23 *
# 1054| ValueCategory = prvalue(load)
# 1054| getRightOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1054| Type = [IntType] int
# 1054| ValueCategory = prvalue(load)
# 1059| [CopyAssignmentOperator] vector<int>& vector<int>::operator=(vector<int> const&)
# 1059| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const vector<int> &
# 1059| [MoveAssignmentOperator] vector<int>& vector<int>::operator=(vector<int>&&)
# 1059| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] vector<int> &&
# 1060| [CopyAssignmentOperator] vector<int>::iterator& vector<int>::iterator::operator=(vector<int>::iterator const public&)
# 1060| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const iterator &
# 1060| [MoveAssignmentOperator] vector<int>::iterator& vector<int>::iterator::operator=(vector<int>::iterator&&)
# 1060| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] iterator &&
# 1062| [MemberFunction] vector<T>::iterator& vector<T>::iterator::operator++()
# 1062| <params>:
# 1062| [MemberFunction] vector<int>::iterator& vector<int>::iterator::operator++()
# 1062| <params>:
# 1063| [ConstMemberFunction] T& vector<T>::iterator::operator*() const
# 1063| <params>:
# 1063| [ConstMemberFunction] int& vector<int>::iterator::operator*() const
# 1063| <params>:
# 1065| [ConstMemberFunction] bool vector<T>::iterator::operator!=(vector<T>::iterator) const
# 1065| <params>:
# 1065| getParameter(0): [Parameter] right
# 1065| Type = [NestedClass,TemplateClass] iterator
# 1065| [ConstMemberFunction] bool vector<int>::iterator::operator!=(vector<int>::iterator) const
# 1065| <params>:
# 1065| getParameter(0): [Parameter] right
# 1065| Type = [NestedStruct] iterator
# 1068| [ConstMemberFunction] vector<T>::iterator vector<T>::begin() const
# 1068| <params>:
# 1068| [ConstMemberFunction] vector<int>::iterator vector<int>::begin() const
# 1068| <params>:
# 1069| [ConstMemberFunction] vector<T>::iterator vector<T>::end() const
# 1069| <params>:
# 1069| [ConstMemberFunction] vector<int>::iterator vector<int>::end() const
# 1069| <params>:
# 1073| [Operator,TemplateFunction,TopLevelFunction] bool operator==<T>(iterator, iterator)
# 1073| <params>:
# 1073| getParameter(0): [Parameter] left
# 1073| Type = [TemplateParameter] iterator
# 1073| getParameter(1): [Parameter] right
# 1073| Type = [TemplateParameter] iterator
# 1075| [Operator,TemplateFunction,TopLevelFunction] bool operator!=<T>(iterator, iterator)
# 1075| <params>:
# 1075| getParameter(0): [Parameter] left
# 1075| Type = [TemplateParameter] iterator
# 1075| getParameter(1): [Parameter] right
# 1075| Type = [TemplateParameter] iterator
# 1077| [TopLevelFunction] void RangeBasedFor(vector<int> const&)
# 1077| <params>:
# 1077| getParameter(0): [Parameter] v
# 1077| Type = [LValueReferenceType] const vector<int> &
# 1077| getEntryPoint(): [BlockStmt] { ... }
# 1078| getStmt(0): [RangeBasedForStmt] for(...:...) ...
# 1078| getChild(0): [DeclStmt] declaration
# 1078| getBeginEndDeclaration(): [DeclStmt] declaration
# 1078| getCondition(): [FunctionCall] call to operator!=
# 1078| Type = [BoolType] bool
# 1078| ValueCategory = prvalue
# 1078| getQualifier(): [VariableAccess] (__begin)
# 1078| Type = [NestedStruct] iterator
# 1078| ValueCategory = lvalue
# 1078| getArgument(0): [VariableAccess] (__end)
# 1078| Type = [NestedStruct] iterator
# 1078| ValueCategory = prvalue(load)
#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)...
#-----| Conversion = [GlvalueConversion] glvalue conversion
#-----| Type = [SpecifiedType] const iterator
#-----| ValueCategory = lvalue
# 1078| getUpdate(): [FunctionCall] call to operator++
# 1078| Type = [LValueReferenceType] iterator &
# 1078| ValueCategory = prvalue
# 1078| getQualifier(): [VariableAccess] (__begin)
# 1078| Type = [NestedStruct] iterator
# 1078| ValueCategory = lvalue
# 1078| getChild(4): [DeclStmt] declaration
# 1078| getStmt(): [BlockStmt] { ... }
# 1079| getStmt(0): [IfStmt] if (...) ...
# 1079| getCondition(): [GTExpr] ... > ...
# 1079| Type = [BoolType] bool
# 1079| ValueCategory = prvalue
# 1079| getGreaterOperand(): [VariableAccess] e
# 1079| Type = [IntType] int
# 1079| ValueCategory = prvalue(load)
# 1079| getLesserOperand(): [Literal] 0
# 1079| Type = [IntType] int
# 1079| Value = [Literal] 0
# 1079| ValueCategory = prvalue
# 1079| getThen(): [BlockStmt] { ... }
# 1080| getStmt(0): [ContinueStmt] continue;
# 1078| getStmt(1): [LabelStmt] label ...:
# 1078| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1078| Type = [NestedStruct] iterator
# 1078| ValueCategory = lvalue
# 1084| getStmt(1): [RangeBasedForStmt] for(...:...) ...
# 1084| getChild(0): [DeclStmt] declaration
# 1084| getBeginEndDeclaration(): [DeclStmt] declaration
# 1084| getCondition(): [FunctionCall] call to operator!=
# 1084| Type = [BoolType] bool
# 1084| ValueCategory = prvalue
# 1084| getQualifier(): [VariableAccess] (__begin)
# 1084| Type = [NestedStruct] iterator
# 1084| ValueCategory = lvalue
# 1084| getArgument(0): [VariableAccess] (__end)
# 1084| Type = [NestedStruct] iterator
# 1084| ValueCategory = prvalue(load)
#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)...
#-----| Conversion = [GlvalueConversion] glvalue conversion
#-----| Type = [SpecifiedType] const iterator
#-----| ValueCategory = lvalue
# 1084| getUpdate(): [FunctionCall] call to operator++
# 1084| Type = [LValueReferenceType] iterator &
# 1084| ValueCategory = prvalue
# 1084| getQualifier(): [VariableAccess] (__begin)
# 1084| Type = [NestedStruct] iterator
# 1084| ValueCategory = lvalue
# 1084| getChild(4): [DeclStmt] declaration
# 1084| getStmt(): [BlockStmt] { ... }
# 1085| getStmt(0): [IfStmt] if (...) ...
# 1085| getCondition(): [LTExpr] ... < ...
# 1085| Type = [BoolType] bool
# 1085| ValueCategory = prvalue
# 1085| getLesserOperand(): [VariableAccess] e
# 1085| Type = [LValueReferenceType] const int &
# 1085| ValueCategory = prvalue(load)
# 1085| getGreaterOperand(): [Literal] 5
# 1085| Type = [IntType] int
# 1085| Value = [Literal] 5
# 1085| ValueCategory = prvalue
# 1085| getLesserOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1085| Type = [IntType] int
# 1085| ValueCategory = prvalue(load)
# 1085| getThen(): [BlockStmt] { ... }
# 1086| getStmt(0): [BreakStmt] break;
# 1084| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1084| Type = [NestedStruct] iterator
# 1084| ValueCategory = lvalue
# 1088| getStmt(2): [LabelStmt] label ...:
# 1089| getStmt(3): [ReturnStmt] return ...
# 1108| [TopLevelFunction] int AsmStmt(int)
# 1108| <params>:
# 1108| getParameter(0): [Parameter] x
# 1108| Type = [IntType] int
# 1108| getEntryPoint(): [BlockStmt] { ... }
# 1109| getStmt(0): [AsmStmt] asm statement
# 1110| getStmt(1): [ReturnStmt] return ...
# 1110| getExpr(): [VariableAccess] x
# 1110| Type = [IntType] int
# 1110| ValueCategory = prvalue(load)
# 1113| [TopLevelFunction] void AsmStmtWithOutputs(unsigned int&, unsigned int, unsigned int&, unsigned int)
# 1113| <params>:
# 1113| getParameter(0): [Parameter] a
# 1113| Type = [LValueReferenceType] unsigned int &
# 1113| getParameter(1): [Parameter] b
# 1113| Type = [IntType] unsigned int
# 1113| getParameter(2): [Parameter] c
# 1113| Type = [LValueReferenceType] unsigned int &
# 1113| getParameter(3): [Parameter] d
# 1113| Type = [IntType] unsigned int
# 1114| getEntryPoint(): [BlockStmt] { ... }
# 1115| getStmt(0): [AsmStmt] asm statement
# 1118| getChild(0): [VariableAccess] a
# 1118| Type = [LValueReferenceType] unsigned int &
# 1118| ValueCategory = prvalue(load)
# 1118| getChild(1): [VariableAccess] b
# 1118| Type = [IntType] unsigned int
# 1118| ValueCategory = lvalue
# 1118| getChild(2): [VariableAccess] c
# 1118| Type = [LValueReferenceType] unsigned int &
# 1118| ValueCategory = prvalue(load)
# 1118| getChild(3): [VariableAccess] d
# 1118| Type = [IntType] unsigned int
# 1118| ValueCategory = prvalue(load)
# 1118| getChild(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1118| Type = [IntType] unsigned int
# 1118| ValueCategory = lvalue
# 1118| getChild(2).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1118| Type = [IntType] unsigned int
# 1118| ValueCategory = prvalue(load)
# 1120| getStmt(1): [ReturnStmt] return ...
# 1122| [TopLevelFunction] void ExternDeclarations()
# 1122| <params>:
# 1123| getEntryPoint(): [BlockStmt] { ... }
# 1124| getStmt(0): [DeclStmt] declaration
# 1124| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g
# 1124| Type = [IntType] int
# 1125| getStmt(1): [DeclStmt] declaration
# 1125| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 1125| Type = [IntType] int
# 1126| getStmt(2): [DeclStmt] declaration
# 1126| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 1126| Type = [IntType] int
# 1126| getDeclarationEntry(1): [FunctionDeclarationEntry] declaration of f
# 1126| Type = [IntType] int
# 1127| getStmt(3): [DeclStmt] declaration
# 1127| getDeclarationEntry(0): [FunctionDeclarationEntry] declaration of z
# 1127| Type = [IntType] int
# 1127| getDeclarationEntry(1): [FunctionDeclarationEntry] declaration of w
# 1127| Type = [IntType] int
# 1127| getDeclarationEntry(2): [VariableDeclarationEntry] definition of h
# 1127| Type = [IntType] int
# 1128| getStmt(4): [DeclStmt] declaration
# 1128| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of d
# 1128| Type = [CTypedefType,LocalTypedefType] d
# 1129| getStmt(5): [ReturnStmt] return ...
# 1126| [TopLevelFunction] int f(float)
# 1126| <params>:
# 1126| getParameter(0): [Parameter] (unnamed parameter 0)
# 1126| Type = [FloatType] float
# 1127| [TopLevelFunction] int z(float)
# 1127| <params>:
# 1127| getParameter(0): [Parameter] (unnamed parameter 0)
# 1127| Type = [FloatType] float
# 1127| [TopLevelFunction] int w(float)
# 1127| <params>:
# 1127| getParameter(0): [Parameter] (unnamed parameter 0)
# 1127| Type = [FloatType] float
# 1137| [TopLevelFunction] void ExternDeclarationsInMacro()
# 1137| <params>:
# 1138| getEntryPoint(): [BlockStmt] { ... }
# 1139| getStmt(0): [DeclStmt] declaration
# 1139| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g
# 1139| Type = [IntType] int
# 1139| getStmt(1): [ForStmt] for(...;...;...) ...
# 1139| getInitialization(): [DeclStmt] declaration
# 1139| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i
# 1139| Type = [IntType] int
# 1139| getVariable().getInitializer(): [Initializer] initializer for i
# 1139| getExpr(): [Literal] 0
# 1139| Type = [IntType] int
# 1139| Value = [Literal] 0
# 1139| ValueCategory = prvalue
# 1139| getCondition(): [LTExpr] ... < ...
# 1139| Type = [BoolType] bool
# 1139| ValueCategory = prvalue
# 1139| getLesserOperand(): [VariableAccess] i
# 1139| Type = [IntType] int
# 1139| ValueCategory = prvalue(load)
# 1139| getGreaterOperand(): [Literal] 10
# 1139| Type = [IntType] int
# 1139| Value = [Literal] 10
# 1139| ValueCategory = prvalue
# 1139| getUpdate(): [PrefixIncrExpr] ++ ...
# 1139| Type = [IntType] int
# 1139| ValueCategory = lvalue
# 1139| getOperand(): [VariableAccess] i
# 1139| Type = [IntType] int
# 1139| ValueCategory = lvalue
# 1139| getStmt(): [BlockStmt] { ... }
# 1139| getStmt(0): [DeclStmt] declaration
# 1139| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g
# 1139| Type = [IntType] int
# 1139| getStmt(2): [EmptyStmt] ;
# 1140| getStmt(3): [ReturnStmt] return ...
# 1142| [TopLevelFunction] void TryCatchNoCatchAny(bool)
# 1142| <params>:
# 1142| getParameter(0): [Parameter] b
# 1142| Type = [BoolType] bool
# 1142| getEntryPoint(): [BlockStmt] { ... }
# 1143| getStmt(0): [TryStmt] try { ... }
# 1143| getStmt(): [BlockStmt] { ... }
# 1144| getStmt(0): [DeclStmt] declaration
# 1144| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 1144| Type = [IntType] int
# 1144| getVariable().getInitializer(): [Initializer] initializer for x
# 1144| getExpr(): [Literal] 5
# 1144| Type = [IntType] int
# 1144| Value = [Literal] 5
# 1144| ValueCategory = prvalue
# 1145| getStmt(1): [IfStmt] if (...) ...
# 1145| getCondition(): [VariableAccess] b
# 1145| Type = [BoolType] bool
# 1145| ValueCategory = prvalue(load)
# 1145| getThen(): [BlockStmt] { ... }
# 1146| getStmt(0): [ExprStmt] ExprStmt
# 1146| getExpr(): [ThrowExpr] throw ...
# 1146| Type = [PointerType] const char *
# 1146| ValueCategory = prvalue
# 1146| getExpr(): string literal
# 1146| Type = [ArrayType] const char[15]
# 1146| Value = [StringLiteral] "string literal"
# 1146| ValueCategory = lvalue
# 1146| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1146| Type = [PointerType] const char *
# 1146| ValueCategory = prvalue
# 1148| getElse(): [IfStmt] if (...) ...
# 1148| getCondition(): [LTExpr] ... < ...
# 1148| Type = [BoolType] bool
# 1148| ValueCategory = prvalue
# 1148| getLesserOperand(): [VariableAccess] x
# 1148| Type = [IntType] int
# 1148| ValueCategory = prvalue(load)
# 1148| getGreaterOperand(): [Literal] 2
# 1148| Type = [IntType] int
# 1148| Value = [Literal] 2
# 1148| ValueCategory = prvalue
# 1148| getThen(): [BlockStmt] { ... }
# 1149| getStmt(0): [ExprStmt] ExprStmt
# 1149| getExpr(): [AssignExpr] ... = ...
# 1149| Type = [IntType] int
# 1149| ValueCategory = lvalue
# 1149| getLValue(): [VariableAccess] x
# 1149| Type = [IntType] int
# 1149| ValueCategory = lvalue
# 1149| getRValue(): [ConditionalExpr] ... ? ... : ...
# 1149| Type = [IntType] int
# 1149| ValueCategory = prvalue
# 1149| getCondition(): [VariableAccess] b
# 1149| Type = [BoolType] bool
# 1149| ValueCategory = prvalue(load)
# 1149| getThen(): [Literal] 7
# 1149| Type = [IntType] int
# 1149| Value = [Literal] 7
# 1149| ValueCategory = prvalue
# 1149| getElse(): [ThrowExpr] throw ...
# 1149| Type = [Struct] String
# 1149| ValueCategory = prvalue
# 1149| getExpr(): [ConstructorCall] call to String
# 1149| Type = [VoidType] void
# 1149| ValueCategory = prvalue
# 1149| getArgument(0): String object
# 1149| Type = [ArrayType] const char[14]
# 1149| Value = [StringLiteral] "String object"
# 1149| ValueCategory = lvalue
# 1149| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1149| Type = [PointerType] const char *
# 1149| ValueCategory = prvalue
# 1151| getStmt(2): [ExprStmt] ExprStmt
# 1151| getExpr(): [AssignExpr] ... = ...
# 1151| Type = [IntType] int
# 1151| ValueCategory = lvalue
# 1151| getLValue(): [VariableAccess] x
# 1151| Type = [IntType] int
# 1151| ValueCategory = lvalue
# 1151| getRValue(): [Literal] 7
# 1151| Type = [IntType] int
# 1151| Value = [Literal] 7
# 1151| ValueCategory = prvalue
# 1153| getChild(1): [Handler] <handler>
# 1153| getBlock(): [CatchBlock] { ... }
# 1154| getStmt(0): [ExprStmt] ExprStmt
# 1154| getExpr(): [ThrowExpr] throw ...
# 1154| Type = [Struct] String
# 1154| ValueCategory = prvalue
# 1154| getExpr(): [ConstructorCall] call to String
# 1154| Type = [VoidType] void
# 1154| ValueCategory = prvalue
# 1154| getArgument(0): [VariableAccess] s
# 1154| Type = [PointerType] const char *
# 1154| ValueCategory = prvalue(load)
# 1156| getChild(2): [Handler] <handler>
# 1156| getBlock(): [CatchBlock] { ... }
# 1158| getStmt(1): [ReturnStmt] return ...
# 1162| [TopLevelFunction] void VectorTypes(int)
# 1162| <params>:
# 1162| getParameter(0): [Parameter] i
# 1162| Type = [IntType] int
# 1162| getEntryPoint(): [BlockStmt] { ... }
# 1163| getStmt(0): [DeclStmt] declaration
# 1163| getDeclarationEntry(0): [VariableDeclarationEntry] definition of vi4
# 1163| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1163| getVariable().getInitializer(): [Initializer] initializer for vi4
# 1163| getExpr(): [VectorAggregateLiteral] {...}
# 1163| Type = [GNUVectorType] __attribute((vector_size(16UL))) int
# 1163| ValueCategory = prvalue
# 1163| getElementExpr(0): [Literal] 0
# 1163| Type = [IntType] int
# 1163| Value = [Literal] 0
# 1163| ValueCategory = prvalue
# 1163| getElementExpr(1): [Literal] 1
# 1163| Type = [IntType] int
# 1163| Value = [Literal] 1
# 1163| ValueCategory = prvalue
# 1163| getElementExpr(2): [Literal] 2
# 1163| Type = [IntType] int
# 1163| Value = [Literal] 2
# 1163| ValueCategory = prvalue
# 1163| getElementExpr(3): [Literal] 3
# 1163| Type = [IntType] int
# 1163| Value = [Literal] 3
# 1163| ValueCategory = prvalue
# 1164| getStmt(1): [DeclStmt] declaration
# 1164| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 1164| Type = [IntType] int
# 1164| getVariable().getInitializer(): [Initializer] initializer for x
# 1164| getExpr(): [ArrayExpr] access to array
# 1164| Type = [IntType] int
# 1164| ValueCategory = prvalue(load)
# 1164| getArrayBase(): [VariableAccess] vi4
# 1164| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1164| ValueCategory = lvalue
# 1164| getArrayOffset(): [VariableAccess] i
# 1164| Type = [IntType] int
# 1164| ValueCategory = prvalue(load)
# 1165| getStmt(2): [ExprStmt] ExprStmt
# 1165| getExpr(): [AssignExpr] ... = ...
# 1165| Type = [IntType] int
# 1165| ValueCategory = lvalue
# 1165| getLValue(): [ArrayExpr] access to array
# 1165| Type = [IntType] int
# 1165| ValueCategory = lvalue
# 1165| getArrayBase(): [VariableAccess] vi4
# 1165| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1165| ValueCategory = lvalue
# 1165| getArrayOffset(): [VariableAccess] i
# 1165| Type = [IntType] int
# 1165| ValueCategory = prvalue(load)
# 1165| getRValue(): [VariableAccess] x
# 1165| Type = [IntType] int
# 1165| ValueCategory = prvalue(load)
# 1166| getStmt(3): [DeclStmt] declaration
# 1166| getDeclarationEntry(0): [VariableDeclarationEntry] definition of vi4_shuffle
# 1166| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1166| getVariable().getInitializer(): [Initializer] initializer for vi4_shuffle
# 1166| getExpr(): [BuiltInOperationBuiltInShuffleVector] __builtin_shufflevector
# 1166| Type = [GNUVectorType] __attribute((vector_size(16))) int
# 1166| ValueCategory = prvalue
# 1166| getChild(0): [VariableAccess] vi4
# 1166| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1166| ValueCategory = prvalue(load)
# 1166| getChild(1): [VariableAccess] vi4
# 1166| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1166| ValueCategory = prvalue(load)
# 1166| getChild(2): [AddExpr] ... + ...
# 1166| Type = [IntType] int
# 1166| Value = [AddExpr] 3
# 1166| ValueCategory = prvalue
# 1166| getLeftOperand(): [Literal] 3
# 1166| Type = [IntType] int
# 1166| Value = [Literal] 3
# 1166| ValueCategory = prvalue
# 1166| getRightOperand(): [Literal] 0
# 1166| Type = [IntType] int
# 1166| Value = [Literal] 0
# 1166| ValueCategory = prvalue
# 1166| getChild(3): [Literal] 2
# 1166| Type = [IntType] int
# 1166| Value = [Literal] 2
# 1166| ValueCategory = prvalue
# 1166| getChild(4): [Literal] 1
# 1166| Type = [IntType] int
# 1166| Value = [Literal] 1
# 1166| ValueCategory = prvalue
# 1166| getChild(5): [Literal] 0
# 1166| Type = [IntType] int
# 1166| Value = [Literal] 0
# 1166| ValueCategory = prvalue
# 1167| getStmt(4): [ExprStmt] ExprStmt
# 1167| getExpr(): [AssignExpr] ... = ...
# 1167| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1167| ValueCategory = lvalue
# 1167| getLValue(): [VariableAccess] vi4
# 1167| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1167| ValueCategory = lvalue
# 1167| getRValue(): [AddExpr] ... + ...
# 1167| Type = [GNUVectorType] __attribute((vector_size(16UL))) int
# 1167| ValueCategory = prvalue
# 1167| getLeftOperand(): [VariableAccess] vi4
# 1167| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1167| ValueCategory = prvalue(load)
# 1167| getRightOperand(): [VariableAccess] vi4_shuffle
# 1167| Type = [SpecifiedType] __attribute((vector_size(16UL))) int
# 1167| ValueCategory = prvalue(load)
# 1168| getStmt(5): [ReturnStmt] return ...
# 1170| [TopLevelFunction] void* memcpy(void*, void*, int)
# 1170| <params>:
# 1170| getParameter(0): [Parameter] dst
# 1170| Type = [VoidPointerType] void *
# 1170| getParameter(1): [Parameter] src
# 1170| Type = [VoidPointerType] void *
# 1170| getParameter(2): [Parameter] size
# 1170| Type = [IntType] int
# 1172| [TopLevelFunction] int ModeledCallTarget(int)
# 1172| <params>:
# 1172| getParameter(0): [Parameter] x
# 1172| Type = [IntType] int
# 1172| getEntryPoint(): [BlockStmt] { ... }
# 1173| getStmt(0): [DeclStmt] declaration
# 1173| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 1173| Type = [IntType] int
# 1174| getStmt(1): [ExprStmt] ExprStmt
# 1174| getExpr(): [FunctionCall] call to memcpy
# 1174| Type = [VoidPointerType] void *
# 1174| ValueCategory = prvalue
# 1174| getArgument(0): [AddressOfExpr] & ...
# 1174| Type = [IntPointerType] int *
# 1174| ValueCategory = prvalue
# 1174| getOperand(): [VariableAccess] y
# 1174| Type = [IntType] int
# 1174| ValueCategory = lvalue
# 1174| getArgument(1): [AddressOfExpr] & ...
# 1174| Type = [IntPointerType] int *
# 1174| ValueCategory = prvalue
# 1174| getOperand(): [VariableAccess] x
# 1174| Type = [IntType] int
# 1174| ValueCategory = lvalue
# 1174| getArgument(2): [SizeofTypeOperator] sizeof(int)
# 1174| Type = [LongType] unsigned long
# 1174| Value = [SizeofTypeOperator] 4
# 1174| ValueCategory = prvalue
# 1174| getArgument(0).getFullyConverted(): [CStyleCast] (void *)...
# 1174| Conversion = [PointerConversion] pointer conversion
# 1174| Type = [VoidPointerType] void *
# 1174| ValueCategory = prvalue
# 1174| getArgument(1).getFullyConverted(): [CStyleCast] (void *)...
# 1174| Conversion = [PointerConversion] pointer conversion
# 1174| Type = [VoidPointerType] void *
# 1174| ValueCategory = prvalue
# 1174| getArgument(2).getFullyConverted(): [CStyleCast] (int)...
# 1174| Conversion = [IntegralConversion] integral conversion
# 1174| Type = [IntType] int
# 1174| Value = [CStyleCast] 4
# 1174| ValueCategory = prvalue
# 1175| getStmt(2): [ReturnStmt] return ...
# 1175| getExpr(): [VariableAccess] y
# 1175| Type = [IntType] int
# 1175| ValueCategory = prvalue(load)
# 1178| [TopLevelFunction] String ReturnObjectImpl()
# 1178| <params>:
# 1178| getEntryPoint(): [BlockStmt] { ... }
# 1179| getStmt(0): [ReturnStmt] return ...
# 1179| getExpr(): [ConstructorCall] call to String
# 1179| Type = [VoidType] void
# 1179| ValueCategory = prvalue
# 1179| getArgument(0): foo
# 1179| Type = [ArrayType] const char[4]
# 1179| Value = [StringLiteral] "foo"
# 1179| ValueCategory = lvalue
# 1179| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1179| Type = [PointerType] const char *
# 1179| ValueCategory = prvalue
# 1182| [TopLevelFunction] void switch1Case(int)
# 1182| <params>:
# 1182| getParameter(0): [Parameter] x
# 1182| Type = [IntType] int
# 1182| getEntryPoint(): [BlockStmt] { ... }
# 1183| getStmt(0): [DeclStmt] declaration
# 1183| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 1183| Type = [IntType] int
# 1183| getVariable().getInitializer(): [Initializer] initializer for y
# 1183| getExpr(): [Literal] 0
# 1183| Type = [IntType] int
# 1183| Value = [Literal] 0
# 1183| ValueCategory = prvalue
# 1184| getStmt(1): [SwitchStmt] switch (...) ...
# 1184| getExpr(): [VariableAccess] x
# 1184| Type = [IntType] int
# 1184| ValueCategory = prvalue(load)
# 1184| getStmt(): [BlockStmt] { ... }
# 1185| getStmt(0): [SwitchCase] case ...:
# 1185| getExpr(): [Literal] 1
# 1185| Type = [IntType] int
# 1185| Value = [Literal] 1
# 1185| ValueCategory = prvalue
# 1186| getStmt(1): [ExprStmt] ExprStmt
# 1186| getExpr(): [AssignExpr] ... = ...
# 1186| Type = [IntType] int
# 1186| ValueCategory = lvalue
# 1186| getLValue(): [VariableAccess] y
# 1186| Type = [IntType] int
# 1186| ValueCategory = lvalue
# 1186| getRValue(): [Literal] 2
# 1186| Type = [IntType] int
# 1186| Value = [Literal] 2
# 1186| ValueCategory = prvalue
# 1188| getStmt(2): [DeclStmt] declaration
# 1188| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 1188| Type = [IntType] int
# 1188| getVariable().getInitializer(): [Initializer] initializer for z
# 1188| getExpr(): [VariableAccess] y
# 1188| Type = [IntType] int
# 1188| ValueCategory = prvalue(load)
# 1189| getStmt(3): [ReturnStmt] return ...
# 1191| [TopLevelFunction] void switch2Case_fallthrough(int)
# 1191| <params>:
# 1191| getParameter(0): [Parameter] x
# 1191| Type = [IntType] int
# 1191| getEntryPoint(): [BlockStmt] { ... }
# 1192| getStmt(0): [DeclStmt] declaration
# 1192| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 1192| Type = [IntType] int
# 1192| getVariable().getInitializer(): [Initializer] initializer for y
# 1192| getExpr(): [Literal] 0
# 1192| Type = [IntType] int
# 1192| Value = [Literal] 0
# 1192| ValueCategory = prvalue
# 1193| getStmt(1): [SwitchStmt] switch (...) ...
# 1193| getExpr(): [VariableAccess] x
# 1193| Type = [IntType] int
# 1193| ValueCategory = prvalue(load)
# 1193| getStmt(): [BlockStmt] { ... }
# 1194| getStmt(0): [SwitchCase] case ...:
# 1194| getExpr(): [Literal] 1
# 1194| Type = [IntType] int
# 1194| Value = [Literal] 1
# 1194| ValueCategory = prvalue
# 1195| getStmt(1): [ExprStmt] ExprStmt
# 1195| getExpr(): [AssignExpr] ... = ...
# 1195| Type = [IntType] int
# 1195| ValueCategory = lvalue
# 1195| getLValue(): [VariableAccess] y
# 1195| Type = [IntType] int
# 1195| ValueCategory = lvalue
# 1195| getRValue(): [Literal] 2
# 1195| Type = [IntType] int
# 1195| Value = [Literal] 2
# 1195| ValueCategory = prvalue
# 1196| getStmt(2): [SwitchCase] case ...:
# 1196| getExpr(): [Literal] 2
# 1196| Type = [IntType] int
# 1196| Value = [Literal] 2
# 1196| ValueCategory = prvalue
# 1197| getStmt(3): [ExprStmt] ExprStmt
# 1197| getExpr(): [AssignExpr] ... = ...
# 1197| Type = [IntType] int
# 1197| ValueCategory = lvalue
# 1197| getLValue(): [VariableAccess] y
# 1197| Type = [IntType] int
# 1197| ValueCategory = lvalue
# 1197| getRValue(): [Literal] 3
# 1197| Type = [IntType] int
# 1197| Value = [Literal] 3
# 1197| ValueCategory = prvalue
# 1199| getStmt(2): [DeclStmt] declaration
# 1199| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 1199| Type = [IntType] int
# 1199| getVariable().getInitializer(): [Initializer] initializer for z
# 1199| getExpr(): [VariableAccess] y
# 1199| Type = [IntType] int
# 1199| ValueCategory = prvalue(load)
# 1200| getStmt(3): [ReturnStmt] return ...
# 1202| [TopLevelFunction] void switch2Case(int)
# 1202| <params>:
# 1202| getParameter(0): [Parameter] x
# 1202| Type = [IntType] int
# 1202| getEntryPoint(): [BlockStmt] { ... }
# 1203| getStmt(0): [DeclStmt] declaration
# 1203| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 1203| Type = [IntType] int
# 1203| getVariable().getInitializer(): [Initializer] initializer for y
# 1203| getExpr(): [Literal] 0
# 1203| Type = [IntType] int
# 1203| Value = [Literal] 0
# 1203| ValueCategory = prvalue
# 1204| getStmt(1): [SwitchStmt] switch (...) ...
# 1204| getExpr(): [VariableAccess] x
# 1204| Type = [IntType] int
# 1204| ValueCategory = prvalue(load)
# 1204| getStmt(): [BlockStmt] { ... }
# 1205| getStmt(0): [SwitchCase] case ...:
# 1205| getExpr(): [Literal] 1
# 1205| Type = [IntType] int
# 1205| Value = [Literal] 1
# 1205| ValueCategory = prvalue
# 1206| getStmt(1): [ExprStmt] ExprStmt
# 1206| getExpr(): [AssignExpr] ... = ...
# 1206| Type = [IntType] int
# 1206| ValueCategory = lvalue
# 1206| getLValue(): [VariableAccess] y
# 1206| Type = [IntType] int
# 1206| ValueCategory = lvalue
# 1206| getRValue(): [Literal] 2
# 1206| Type = [IntType] int
# 1206| Value = [Literal] 2
# 1206| ValueCategory = prvalue
# 1207| getStmt(2): [BreakStmt] break;
# 1208| getStmt(3): [SwitchCase] case ...:
# 1208| getExpr(): [Literal] 2
# 1208| Type = [IntType] int
# 1208| Value = [Literal] 2
# 1208| ValueCategory = prvalue
# 1209| getStmt(4): [ExprStmt] ExprStmt
# 1209| getExpr(): [AssignExpr] ... = ...
# 1209| Type = [IntType] int
# 1209| ValueCategory = lvalue
# 1209| getLValue(): [VariableAccess] y
# 1209| Type = [IntType] int
# 1209| ValueCategory = lvalue
# 1209| getRValue(): [Literal] 3
# 1209| Type = [IntType] int
# 1209| Value = [Literal] 3
# 1209| ValueCategory = prvalue
# 1210| getStmt(2): [LabelStmt] label ...:
# 1211| getStmt(3): [DeclStmt] declaration
# 1211| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 1211| Type = [IntType] int
# 1211| getVariable().getInitializer(): [Initializer] initializer for z
# 1211| getExpr(): [VariableAccess] y
# 1211| Type = [IntType] int
# 1211| ValueCategory = prvalue(load)
# 1212| getStmt(4): [ReturnStmt] return ...
# 1214| [TopLevelFunction] void switch2Case_default(int)
# 1214| <params>:
# 1214| getParameter(0): [Parameter] x
# 1214| Type = [IntType] int
# 1214| getEntryPoint(): [BlockStmt] { ... }
# 1215| getStmt(0): [DeclStmt] declaration
# 1215| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 1215| Type = [IntType] int
# 1215| getVariable().getInitializer(): [Initializer] initializer for y
# 1215| getExpr(): [Literal] 0
# 1215| Type = [IntType] int
# 1215| Value = [Literal] 0
# 1215| ValueCategory = prvalue
# 1216| getStmt(1): [SwitchStmt] switch (...) ...
# 1216| getExpr(): [VariableAccess] x
# 1216| Type = [IntType] int
# 1216| ValueCategory = prvalue(load)
# 1216| getStmt(): [BlockStmt] { ... }
# 1217| getStmt(0): [SwitchCase] case ...:
# 1217| getExpr(): [Literal] 1
# 1217| Type = [IntType] int
# 1217| Value = [Literal] 1
# 1217| ValueCategory = prvalue
# 1218| getStmt(1): [ExprStmt] ExprStmt
# 1218| getExpr(): [AssignExpr] ... = ...
# 1218| Type = [IntType] int
# 1218| ValueCategory = lvalue
# 1218| getLValue(): [VariableAccess] y
# 1218| Type = [IntType] int
# 1218| ValueCategory = lvalue
# 1218| getRValue(): [Literal] 2
# 1218| Type = [IntType] int
# 1218| Value = [Literal] 2
# 1218| ValueCategory = prvalue
# 1219| getStmt(2): [BreakStmt] break;
# 1221| getStmt(3): [SwitchCase] case ...:
# 1221| getExpr(): [Literal] 2
# 1221| Type = [IntType] int
# 1221| Value = [Literal] 2
# 1221| ValueCategory = prvalue
# 1222| getStmt(4): [ExprStmt] ExprStmt
# 1222| getExpr(): [AssignExpr] ... = ...
# 1222| Type = [IntType] int
# 1222| ValueCategory = lvalue
# 1222| getLValue(): [VariableAccess] y
# 1222| Type = [IntType] int
# 1222| ValueCategory = lvalue
# 1222| getRValue(): [Literal] 3
# 1222| Type = [IntType] int
# 1222| Value = [Literal] 3
# 1222| ValueCategory = prvalue
# 1223| getStmt(5): [BreakStmt] break;
# 1225| getStmt(6): [SwitchCase] default:
# 1226| getStmt(7): [ExprStmt] ExprStmt
# 1226| getExpr(): [AssignExpr] ... = ...
# 1226| Type = [IntType] int
# 1226| ValueCategory = lvalue
# 1226| getLValue(): [VariableAccess] y
# 1226| Type = [IntType] int
# 1226| ValueCategory = lvalue
# 1226| getRValue(): [Literal] 4
# 1226| Type = [IntType] int
# 1226| Value = [Literal] 4
# 1226| ValueCategory = prvalue
# 1227| getStmt(2): [LabelStmt] label ...:
# 1228| getStmt(3): [DeclStmt] declaration
# 1228| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 1228| Type = [IntType] int
# 1228| getVariable().getInitializer(): [Initializer] initializer for z
# 1228| getExpr(): [VariableAccess] y
# 1228| Type = [IntType] int
# 1228| ValueCategory = prvalue(load)
# 1229| getStmt(4): [ReturnStmt] return ...
# 1231| [TopLevelFunction] int staticLocalInit(int)
# 1231| <params>:
# 1231| getParameter(0): [Parameter] x
# 1231| Type = [IntType] int
# 1231| getEntryPoint(): [BlockStmt] { ... }
# 1232| getStmt(0): [DeclStmt] declaration
# 1232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
# 1232| Type = [IntType] int
# 1232| getVariable().getInitializer(): [Initializer] initializer for a
# 1232| getExpr(): [Literal] 0
# 1232| Type = [IntType] int
# 1232| Value = [Literal] 0
# 1232| ValueCategory = prvalue
# 1233| getStmt(1): [DeclStmt] declaration
# 1233| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 1233| Type = [IntType] int
# 1233| getVariable().getInitializer(): [Initializer] initializer for b
# 1233| getExpr(): [SizeofExprOperator] sizeof(<expr>)
# 1233| Type = [LongType] unsigned long
# 1233| Value = [SizeofExprOperator] 4
# 1233| ValueCategory = prvalue
# 1233| getExprOperand(): [VariableAccess] x
# 1233| Type = [IntType] int
# 1233| ValueCategory = lvalue
# 1233| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
# 1233| Type = [IntType] int
# 1233| ValueCategory = lvalue
# 1233| getExpr().getFullyConverted(): [CStyleCast] (int)...
# 1233| Conversion = [IntegralConversion] integral conversion
# 1233| Type = [IntType] int
# 1233| Value = [CStyleCast] 4
# 1233| ValueCategory = prvalue
# 1234| getStmt(2): [DeclStmt] declaration
# 1234| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
# 1234| Type = [IntType] int
# 1234| getVariable().getInitializer(): [Initializer] initializer for c
# 1234| getExpr(): [VariableAccess] x
# 1234| Type = [IntType] int
# 1234| ValueCategory = prvalue(load)
# 1235| getStmt(3): [DeclStmt] declaration
# 1235| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 1235| Type = [IntType] int
# 1237| getStmt(4): [ReturnStmt] return ...
# 1237| getExpr(): [AddExpr] ... + ...
# 1237| Type = [IntType] int
# 1237| ValueCategory = prvalue
# 1237| getLeftOperand(): [AddExpr] ... + ...
# 1237| Type = [IntType] int
# 1237| ValueCategory = prvalue
# 1237| getLeftOperand(): [AddExpr] ... + ...
# 1237| Type = [IntType] int
# 1237| ValueCategory = prvalue
# 1237| getLeftOperand(): [VariableAccess] a
# 1237| Type = [IntType] int
# 1237| ValueCategory = prvalue(load)
# 1237| getRightOperand(): [VariableAccess] b
# 1237| Type = [IntType] int
# 1237| ValueCategory = prvalue(load)
# 1237| getRightOperand(): [VariableAccess] c
# 1237| Type = [IntType] int
# 1237| ValueCategory = prvalue(load)
# 1237| getRightOperand(): [VariableAccess] d
# 1237| Type = [IntType] int
# 1237| ValueCategory = prvalue(load)
# 1240| [TopLevelFunction] void staticLocalWithConstructor(char const*)
# 1240| <params>:
# 1240| getParameter(0): [Parameter] dynamic
# 1240| Type = [PointerType] const char *
# 1240| getEntryPoint(): [BlockStmt] { ... }
# 1241| getStmt(0): [DeclStmt] declaration
# 1241| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
# 1241| Type = [Struct] String
#-----| getVariable().getInitializer(): [Initializer] initializer for a
#-----| getExpr(): [ConstructorCall] call to String
#-----| Type = [VoidType] void
#-----| ValueCategory = prvalue
# 1242| getStmt(1): [DeclStmt] declaration
# 1242| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 1242| Type = [Struct] String
# 1242| getVariable().getInitializer(): [Initializer] initializer for b
# 1242| getExpr(): [ConstructorCall] call to String
# 1242| Type = [VoidType] void
# 1242| ValueCategory = prvalue
# 1242| getArgument(0): static
# 1242| Type = [ArrayType] const char[7]
# 1242| Value = [StringLiteral] "static"
# 1242| ValueCategory = lvalue
# 1242| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1242| Type = [PointerType] const char *
# 1242| ValueCategory = prvalue
# 1243| getStmt(2): [DeclStmt] declaration
# 1243| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
# 1243| Type = [Struct] String
# 1243| getVariable().getInitializer(): [Initializer] initializer for c
# 1243| getExpr(): [ConstructorCall] call to String
# 1243| Type = [VoidType] void
# 1243| ValueCategory = prvalue
# 1243| getArgument(0): [VariableAccess] dynamic
# 1243| Type = [PointerType] const char *
# 1243| ValueCategory = prvalue(load)
# 1244| getStmt(3): [ReturnStmt] return ...
# 1248| [TopLevelFunction] char* strcpy(char*, char const*)
# 1248| <params>:
# 1248| getParameter(0): [Parameter] destination
# 1248| Type = [CharPointerType] char *
# 1248| getParameter(1): [Parameter] source
# 1248| Type = [PointerType] const char *
# 1249| [TopLevelFunction] char* strcat(char*, char const*)
# 1249| <params>:
# 1249| getParameter(0): [Parameter] destination
# 1249| Type = [CharPointerType] char *
# 1249| getParameter(1): [Parameter] source
# 1249| Type = [PointerType] const char *
# 1251| [TopLevelFunction] void test_strings(char*, char*)
# 1251| <params>:
# 1251| getParameter(0): [Parameter] s1
# 1251| Type = [CharPointerType] char *
# 1251| getParameter(1): [Parameter] s2
# 1251| Type = [CharPointerType] char *
# 1251| getEntryPoint(): [BlockStmt] { ... }
# 1252| getStmt(0): [DeclStmt] declaration
# 1252| getDeclarationEntry(0): [VariableDeclarationEntry] definition of buffer
# 1252| Type = [ArrayType] char[1024]
# 1252| getVariable().getInitializer(): [Initializer] initializer for buffer
# 1252| getExpr(): [ArrayAggregateLiteral] {...}
# 1252| Type = [ArrayType] char[1024]
# 1252| ValueCategory = prvalue
# 1252| getElementExpr(0): [Literal] 0
# 1252| Type = [IntType] int
# 1252| Value = [Literal] 0
# 1252| ValueCategory = prvalue
# 1252| getElementExpr(0).getFullyConverted(): [CStyleCast] (char)...
# 1252| Conversion = [IntegralConversion] integral conversion
# 1252| Type = [PlainCharType] char
# 1252| Value = [CStyleCast] 0
# 1252| ValueCategory = prvalue
# 1254| getStmt(1): [ExprStmt] ExprStmt
# 1254| getExpr(): [FunctionCall] call to strcpy
# 1254| Type = [CharPointerType] char *
# 1254| ValueCategory = prvalue
# 1254| getArgument(0): [VariableAccess] buffer
# 1254| Type = [ArrayType] char[1024]
# 1254| ValueCategory = lvalue
# 1254| getArgument(1): [VariableAccess] s1
# 1254| Type = [CharPointerType] char *
# 1254| ValueCategory = prvalue(load)
# 1254| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1254| Type = [CharPointerType] char *
# 1254| ValueCategory = prvalue
# 1254| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)...
# 1254| Conversion = [PointerConversion] pointer conversion
# 1254| Type = [PointerType] const char *
# 1254| ValueCategory = prvalue
# 1255| getStmt(2): [ExprStmt] ExprStmt
# 1255| getExpr(): [FunctionCall] call to strcat
# 1255| Type = [CharPointerType] char *
# 1255| ValueCategory = prvalue
# 1255| getArgument(0): [VariableAccess] buffer
# 1255| Type = [ArrayType] char[1024]
# 1255| ValueCategory = lvalue
# 1255| getArgument(1): [VariableAccess] s2
# 1255| Type = [CharPointerType] char *
# 1255| ValueCategory = prvalue(load)
# 1255| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1255| Type = [CharPointerType] char *
# 1255| ValueCategory = prvalue
# 1255| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)...
# 1255| Conversion = [PointerConversion] pointer conversion
# 1255| Type = [PointerType] const char *
# 1255| ValueCategory = prvalue
# 1256| getStmt(3): [ReturnStmt] return ...
# 1258| [CopyAssignmentOperator] A& A::operator=(A const&)
# 1258| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const A &
# 1258| [MoveAssignmentOperator] A& A::operator=(A&&)
# 1258| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] A &&
# 1261| [MemberFunction] void A::static_member(A*, int)
# 1261| <params>:
# 1261| getParameter(0): [Parameter] a
# 1261| Type = [PointerType] A *
# 1261| getParameter(1): [Parameter] x
# 1261| Type = [IntType] int
# 1261| getEntryPoint(): [BlockStmt] { ... }
# 1262| getStmt(0): [ExprStmt] ExprStmt
# 1262| getExpr(): [AssignExpr] ... = ...
# 1262| Type = [IntType] int
# 1262| ValueCategory = lvalue
# 1262| getLValue(): [PointerFieldAccess] member
# 1262| Type = [IntType] int
# 1262| ValueCategory = lvalue
# 1262| getQualifier(): [VariableAccess] a
# 1262| Type = [PointerType] A *
# 1262| ValueCategory = prvalue(load)
# 1262| getRValue(): [VariableAccess] x
# 1262| Type = [IntType] int
# 1262| ValueCategory = prvalue(load)
# 1263| getStmt(1): [ReturnStmt] return ...
# 1265| [MemberFunction] void A::static_member_without_def()
# 1265| <params>:
# 1268| [TopLevelFunction] A* getAnInstanceOfA()
# 1268| <params>:
# 1270| [TopLevelFunction] void test_static_member_functions(int, A*)
# 1270| <params>:
# 1270| getParameter(0): [Parameter] int_arg
# 1270| Type = [IntType] int
# 1270| getParameter(1): [Parameter] a_arg
# 1270| Type = [PointerType] A *
# 1270| getEntryPoint(): [BlockStmt] { ... }
# 1271| getStmt(0): [DeclStmt] declaration
# 1271| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
# 1271| Type = [Class] C
# 1271| getVariable().getInitializer(): [Initializer] initializer for c
# 1271| getExpr(): [ConstructorCall] call to C
# 1271| Type = [VoidType] void
# 1271| ValueCategory = prvalue
# 1272| getStmt(1): [ExprStmt] ExprStmt
# 1272| getExpr(): [FunctionCall] call to StaticMemberFunction
# 1272| Type = [IntType] int
# 1272| ValueCategory = prvalue
# 1272| getQualifier(): [VariableAccess] c
# 1272| Type = [Class] C
# 1272| ValueCategory = lvalue
# 1272| getArgument(0): [Literal] 10
# 1272| Type = [IntType] int
# 1272| Value = [Literal] 10
# 1272| ValueCategory = prvalue
# 1273| getStmt(2): [ExprStmt] ExprStmt
# 1273| getExpr(): [FunctionCall] call to StaticMemberFunction
# 1273| Type = [IntType] int
# 1273| ValueCategory = prvalue
# 1273| getArgument(0): [Literal] 10
# 1273| Type = [IntType] int
# 1273| Value = [Literal] 10
# 1273| ValueCategory = prvalue
# 1275| getStmt(3): [DeclStmt] declaration
# 1275| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
# 1275| Type = [Struct] A
# 1276| getStmt(4): [ExprStmt] ExprStmt
# 1276| getExpr(): [FunctionCall] call to static_member
# 1276| Type = [VoidType] void
# 1276| ValueCategory = prvalue
# 1276| getQualifier(): [VariableAccess] a
# 1276| Type = [Struct] A
# 1276| ValueCategory = lvalue
# 1276| getArgument(0): [AddressOfExpr] & ...
# 1276| Type = [PointerType] A *
# 1276| ValueCategory = prvalue
# 1276| getOperand(): [VariableAccess] a
# 1276| Type = [Struct] A
# 1276| ValueCategory = lvalue
# 1276| getArgument(1): [VariableAccess] int_arg
# 1276| Type = [IntType] int
# 1276| ValueCategory = prvalue(load)
# 1277| getStmt(5): [ExprStmt] ExprStmt
# 1277| getExpr(): [FunctionCall] call to static_member
# 1277| Type = [VoidType] void
# 1277| ValueCategory = prvalue
# 1277| getArgument(0): [AddressOfExpr] & ...
# 1277| Type = [PointerType] A *
# 1277| ValueCategory = prvalue
# 1277| getOperand(): [VariableAccess] a
# 1277| Type = [Struct] A
# 1277| ValueCategory = lvalue
# 1277| getArgument(1): [VariableAccess] int_arg
# 1277| Type = [IntType] int
# 1277| ValueCategory = prvalue(load)
# 1279| getStmt(6): [ExprStmt] ExprStmt
# 1279| getExpr(): [FunctionCall] call to static_member
# 1279| Type = [VoidType] void
# 1279| ValueCategory = prvalue
# 1279| getQualifier(): [AddressOfExpr] & ...
# 1279| Type = [PointerType] A *
# 1279| ValueCategory = prvalue
# 1279| getOperand(): [VariableAccess] a
# 1279| Type = [Struct] A
# 1279| ValueCategory = lvalue
# 1279| getArgument(0): [VariableAccess] a_arg
# 1279| Type = [PointerType] A *
# 1279| ValueCategory = prvalue(load)
# 1279| getArgument(1): [AddExpr] ... + ...
# 1279| Type = [IntType] int
# 1279| ValueCategory = prvalue
# 1279| getLeftOperand(): [VariableAccess] int_arg
# 1279| Type = [IntType] int
# 1279| ValueCategory = prvalue(load)
# 1279| getRightOperand(): [Literal] 2
# 1279| Type = [IntType] int
# 1279| Value = [Literal] 2
# 1279| ValueCategory = prvalue
# 1279| getQualifier().getFullyConverted(): [ParenthesisExpr] (...)
# 1279| Type = [PointerType] A *
# 1279| ValueCategory = prvalue
# 1280| getStmt(7): [ExprStmt] ExprStmt
# 1280| getExpr(): [FunctionCall] call to static_member
# 1280| Type = [VoidType] void
# 1280| ValueCategory = prvalue
# 1280| getQualifier(): [PointerDereferenceExpr] * ...
# 1280| Type = [Struct] A
# 1280| ValueCategory = lvalue
# 1280| getOperand(): [VariableAccess] a_arg
# 1280| Type = [PointerType] A *
# 1280| ValueCategory = prvalue(load)
# 1280| getArgument(0): [AddressOfExpr] & ...
# 1280| Type = [PointerType] A *
# 1280| ValueCategory = prvalue
# 1280| getOperand(): [VariableAccess] a
# 1280| Type = [Struct] A
# 1280| ValueCategory = lvalue
# 1280| getArgument(1): [Literal] 99
# 1280| Type = [IntType] int
# 1280| Value = [Literal] 99
# 1280| ValueCategory = prvalue
# 1280| getQualifier().getFullyConverted(): [ParenthesisExpr] (...)
# 1280| Type = [Struct] A
# 1280| ValueCategory = lvalue
# 1281| getStmt(8): [ExprStmt] ExprStmt
# 1281| getExpr(): [FunctionCall] call to static_member
# 1281| Type = [VoidType] void
# 1281| ValueCategory = prvalue
# 1281| getQualifier(): [VariableAccess] a_arg
# 1281| Type = [PointerType] A *
# 1281| ValueCategory = prvalue(load)
# 1281| getArgument(0): [VariableAccess] a_arg
# 1281| Type = [PointerType] A *
# 1281| ValueCategory = prvalue(load)
# 1281| getArgument(1): [UnaryMinusExpr] - ...
# 1281| Type = [IntType] int
# 1281| Value = [UnaryMinusExpr] -1
# 1281| ValueCategory = prvalue
# 1281| getOperand(): [Literal] 1
# 1281| Type = [IntType] int
# 1281| Value = [Literal] 1
# 1281| ValueCategory = prvalue
# 1283| getStmt(9): [ExprStmt] ExprStmt
# 1283| getExpr(): [FunctionCall] call to static_member_without_def
# 1283| Type = [VoidType] void
# 1283| ValueCategory = prvalue
# 1283| getQualifier(): [VariableAccess] a
# 1283| Type = [Struct] A
# 1283| ValueCategory = lvalue
# 1284| getStmt(10): [ExprStmt] ExprStmt
# 1284| getExpr(): [FunctionCall] call to static_member_without_def
# 1284| Type = [VoidType] void
# 1284| ValueCategory = prvalue
# 1286| getStmt(11): [ExprStmt] ExprStmt
# 1286| getExpr(): [FunctionCall] call to static_member_without_def
# 1286| Type = [VoidType] void
# 1286| ValueCategory = prvalue
# 1286| getQualifier(): [FunctionCall] call to getAnInstanceOfA
# 1286| Type = [PointerType] A *
# 1286| ValueCategory = prvalue
# 1287| getStmt(12): [ReturnStmt] return ...
# 1289| [TopLevelFunction] int missingReturnValue(bool, int)
# 1289| <params>:
# 1289| getParameter(0): [Parameter] b
# 1289| Type = [BoolType] bool
# 1289| getParameter(1): [Parameter] x
# 1289| Type = [IntType] int
# 1289| getEntryPoint(): [BlockStmt] { ... }
# 1290| getStmt(0): [IfStmt] if (...) ...
# 1290| getCondition(): [VariableAccess] b
# 1290| Type = [BoolType] bool
# 1290| ValueCategory = prvalue(load)
# 1290| getThen(): [BlockStmt] { ... }
# 1291| getStmt(0): [ReturnStmt] return ...
# 1291| getExpr(): [VariableAccess] x
# 1291| Type = [IntType] int
# 1291| ValueCategory = prvalue(load)
# 1293| getStmt(1): [ReturnStmt] return ...
# 1295| [TopLevelFunction] void returnVoid(int, int)
# 1295| <params>:
# 1295| getParameter(0): [Parameter] x
# 1295| Type = [IntType] int
# 1295| getParameter(1): [Parameter] y
# 1295| Type = [IntType] int
# 1295| getEntryPoint(): [BlockStmt] { ... }
# 1296| getStmt(0): [ReturnStmt] return ...
# 1296| getExpr(): [FunctionCall] call to IntegerOps
# 1296| Type = [VoidType] void
# 1296| ValueCategory = prvalue
# 1296| getArgument(0): [VariableAccess] x
# 1296| Type = [IntType] int
# 1296| ValueCategory = prvalue(load)
# 1296| getArgument(1): [VariableAccess] y
# 1296| Type = [IntType] int
# 1296| ValueCategory = prvalue(load)
# 1299| [TopLevelFunction] void gccBinaryConditional(bool, int, long)
# 1299| <params>:
# 1299| getParameter(0): [Parameter] b
# 1299| Type = [BoolType] bool
# 1299| getParameter(1): [Parameter] x
# 1299| Type = [IntType] int
# 1299| getParameter(2): [Parameter] y
# 1299| Type = [LongType] long
# 1299| getEntryPoint(): [BlockStmt] { ... }
# 1300| getStmt(0): [DeclStmt] declaration
# 1300| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
# 1300| Type = [IntType] int
# 1300| getVariable().getInitializer(): [Initializer] initializer for z
# 1300| getExpr(): [VariableAccess] x
# 1300| Type = [IntType] int
# 1300| ValueCategory = prvalue(load)
# 1301| getStmt(1): [ExprStmt] ExprStmt
# 1301| getExpr(): [AssignExpr] ... = ...
# 1301| Type = [IntType] int
# 1301| ValueCategory = lvalue
# 1301| getLValue(): [VariableAccess] z
# 1301| Type = [IntType] int
# 1301| ValueCategory = lvalue
# 1301| getRValue(): [ConditionalExpr] ... ? ... : ...
# 1301| Type = [IntType] int
# 1301| ValueCategory = prvalue
# 1301| getCondition(): [VariableAccess] b
# 1301| Type = [BoolType] bool
# 1301| ValueCategory = prvalue(load)
# 1301| getElse(): [VariableAccess] x
# 1301| Type = [IntType] int
# 1301| ValueCategory = prvalue(load)
# 1302| getStmt(2): [ExprStmt] ExprStmt
# 1302| getExpr(): [AssignExpr] ... = ...
# 1302| Type = [IntType] int
# 1302| ValueCategory = lvalue
# 1302| getLValue(): [VariableAccess] z
# 1302| Type = [IntType] int
# 1302| ValueCategory = lvalue
# 1302| getRValue(): [ConditionalExpr] ... ? ... : ...
# 1302| Type = [LongType] long
# 1302| ValueCategory = prvalue
# 1302| getCondition(): [VariableAccess] b
# 1302| Type = [BoolType] bool
# 1302| ValueCategory = prvalue(load)
# 1302| getElse(): [VariableAccess] y
# 1302| Type = [LongType] long
# 1302| ValueCategory = prvalue(load)
# 1302| getRValue().getFullyConverted(): [CStyleCast] (int)...
# 1302| Conversion = [IntegralConversion] integral conversion
# 1302| Type = [IntType] int
# 1302| ValueCategory = prvalue
# 1303| getStmt(3): [ExprStmt] ExprStmt
# 1303| getExpr(): [AssignExpr] ... = ...
# 1303| Type = [IntType] int
# 1303| ValueCategory = lvalue
# 1303| getLValue(): [VariableAccess] z
# 1303| Type = [IntType] int
# 1303| ValueCategory = lvalue
# 1303| getRValue(): [ConditionalExpr] ... ? ... : ...
# 1303| Type = [IntType] int
# 1303| ValueCategory = prvalue
# 1303| getCondition(): [VariableAccess] x
# 1303| Type = [IntType] int
# 1303| ValueCategory = prvalue(load)
# 1303| getElse(): [VariableAccess] x
# 1303| Type = [IntType] int
# 1303| ValueCategory = prvalue(load)
# 1303| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 1303| Conversion = [BoolConversion] conversion to bool
# 1303| Type = [BoolType] bool
# 1303| ValueCategory = prvalue
# 1304| getStmt(4): [ExprStmt] ExprStmt
# 1304| getExpr(): [AssignExpr] ... = ...
# 1304| Type = [IntType] int
# 1304| ValueCategory = lvalue
# 1304| getLValue(): [VariableAccess] z
# 1304| Type = [IntType] int
# 1304| ValueCategory = lvalue
# 1304| getRValue(): [ConditionalExpr] ... ? ... : ...
# 1304| Type = [LongType] long
# 1304| ValueCategory = prvalue
# 1304| getCondition(): [VariableAccess] x
# 1304| Type = [IntType] int
# 1304| ValueCategory = prvalue(load)
# 1304| getElse(): [VariableAccess] y
# 1304| Type = [LongType] long
# 1304| ValueCategory = prvalue(load)
# 1304| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 1304| Conversion = [BoolConversion] conversion to bool
# 1304| Type = [BoolType] bool
# 1304| ValueCategory = prvalue
# 1304| getRValue().getFullyConverted(): [CStyleCast] (int)...
# 1304| Conversion = [IntegralConversion] integral conversion
# 1304| Type = [IntType] int
# 1304| ValueCategory = prvalue
# 1305| getStmt(5): [ExprStmt] ExprStmt
# 1305| getExpr(): [AssignExpr] ... = ...
# 1305| Type = [IntType] int
# 1305| ValueCategory = lvalue
# 1305| getLValue(): [VariableAccess] z
# 1305| Type = [IntType] int
# 1305| ValueCategory = lvalue
# 1305| getRValue(): [ConditionalExpr] ... ? ... : ...
# 1305| Type = [LongType] long
# 1305| ValueCategory = prvalue
# 1305| getCondition(): [VariableAccess] y
# 1305| Type = [LongType] long
# 1305| ValueCategory = prvalue(load)
# 1305| getElse(): [VariableAccess] x
# 1305| Type = [IntType] int
# 1305| ValueCategory = prvalue(load)
# 1305| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 1305| Conversion = [BoolConversion] conversion to bool
# 1305| Type = [BoolType] bool
# 1305| ValueCategory = prvalue
# 1305| getElse().getFullyConverted(): [CStyleCast] (long)...
# 1305| Conversion = [IntegralConversion] integral conversion
# 1305| Type = [LongType] long
# 1305| ValueCategory = prvalue
# 1305| getRValue().getFullyConverted(): [CStyleCast] (int)...
# 1305| Conversion = [IntegralConversion] integral conversion
# 1305| Type = [IntType] int
# 1305| ValueCategory = prvalue
# 1306| getStmt(6): [ExprStmt] ExprStmt
# 1306| getExpr(): [AssignExpr] ... = ...
# 1306| Type = [IntType] int
# 1306| ValueCategory = lvalue
# 1306| getLValue(): [VariableAccess] z
# 1306| Type = [IntType] int
# 1306| ValueCategory = lvalue
# 1306| getRValue(): [ConditionalExpr] ... ? ... : ...
# 1306| Type = [LongType] long
# 1306| ValueCategory = prvalue
# 1306| getCondition(): [VariableAccess] y
# 1306| Type = [LongType] long
# 1306| ValueCategory = prvalue(load)
# 1306| getElse(): [VariableAccess] y
# 1306| Type = [LongType] long
# 1306| ValueCategory = prvalue(load)
# 1306| getCondition().getFullyConverted(): [CStyleCast] (bool)...
# 1306| Conversion = [BoolConversion] conversion to bool
# 1306| Type = [BoolType] bool
# 1306| ValueCategory = prvalue
# 1306| getRValue().getFullyConverted(): [CStyleCast] (int)...
# 1306| Conversion = [IntegralConversion] integral conversion
# 1306| Type = [IntType] int
# 1306| ValueCategory = prvalue
# 1308| getStmt(7): [ExprStmt] ExprStmt
# 1308| getExpr(): [AssignExpr] ... = ...
# 1308| Type = [IntType] int
# 1308| ValueCategory = lvalue
# 1308| getLValue(): [VariableAccess] z
# 1308| Type = [IntType] int
# 1308| ValueCategory = lvalue
# 1308| getRValue(): [ConditionalExpr] ... ? ... : ...
# 1308| Type = [IntType] int
# 1308| ValueCategory = prvalue
# 1308| getCondition(): [LogicalOrExpr] ... || ...
# 1308| Type = [BoolType] bool
# 1308| ValueCategory = prvalue
# 1308| getLeftOperand(): [LogicalAndExpr] ... && ...
# 1308| Type = [BoolType] bool
# 1308| ValueCategory = prvalue
# 1308| getLeftOperand(): [VariableAccess] x
# 1308| Type = [IntType] int
# 1308| ValueCategory = prvalue(load)
# 1308| getRightOperand(): [VariableAccess] b
# 1308| Type = [BoolType] bool
# 1308| ValueCategory = prvalue(load)
# 1308| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)...
# 1308| Conversion = [BoolConversion] conversion to bool
# 1308| Type = [BoolType] bool
# 1308| ValueCategory = prvalue
# 1308| getRightOperand(): [VariableAccess] y
# 1308| Type = [LongType] long
# 1308| ValueCategory = prvalue(load)
# 1308| getRightOperand().getFullyConverted(): [CStyleCast] (bool)...
# 1308| Conversion = [BoolConversion] conversion to bool
# 1308| Type = [BoolType] bool
# 1308| ValueCategory = prvalue
# 1308| getElse(): [VariableAccess] x
# 1308| Type = [IntType] int
# 1308| ValueCategory = prvalue(load)
# 1308| getCondition().getFullyConverted(): [ParenthesisExpr] (...)
# 1308| Type = [BoolType] bool
# 1308| ValueCategory = prvalue
# 1309| getStmt(8): [ReturnStmt] return ...
# 1311| [TopLevelFunction] bool predicateA()
# 1311| <params>:
# 1312| [TopLevelFunction] bool predicateB()
# 1312| <params>:
# 1314| [TopLevelFunction] int shortCircuitConditional(int, int)
# 1314| <params>:
# 1314| getParameter(0): [Parameter] x
# 1314| Type = [IntType] int
# 1314| getParameter(1): [Parameter] y
# 1314| Type = [IntType] int
# 1314| getEntryPoint(): [BlockStmt] { ... }
# 1315| getStmt(0): [ReturnStmt] return ...
# 1315| getExpr(): [ConditionalExpr] ... ? ... : ...
# 1315| Type = [IntType] int
# 1315| ValueCategory = prvalue
# 1315| getCondition(): [LogicalAndExpr] ... && ...
# 1315| Type = [BoolType] bool
# 1315| ValueCategory = prvalue
# 1315| getLeftOperand(): [FunctionCall] call to predicateA
# 1315| Type = [BoolType] bool
# 1315| ValueCategory = prvalue
# 1315| getRightOperand(): [FunctionCall] call to predicateB
# 1315| Type = [BoolType] bool
# 1315| ValueCategory = prvalue
# 1315| getThen(): [VariableAccess] x
# 1315| Type = [IntType] int
# 1315| ValueCategory = prvalue(load)
# 1315| getElse(): [VariableAccess] y
# 1315| Type = [IntType] int
# 1315| ValueCategory = prvalue(load)
# 1318| [Operator,TopLevelFunction] void* operator new(size_t, void*)
# 1318| <params>:
# 1318| getParameter(0): [Parameter] (unnamed parameter 0)
# 1318| Type = [CTypedefType,Size_t] size_t
# 1318| getParameter(1): [Parameter] (unnamed parameter 1)
# 1318| Type = [VoidPointerType] void *
# 1320| [TopLevelFunction] void f(int*)
# 1320| <params>:
# 1320| getParameter(0): [Parameter] p
# 1320| Type = [IntPointerType] int *
# 1321| getEntryPoint(): [BlockStmt] { ... }
# 1322| getStmt(0): [ExprStmt] ExprStmt
# 1322| getExpr(): [NewExpr] new
# 1322| Type = [IntPointerType] int *
# 1322| ValueCategory = prvalue
# 1322| getAllocatorCall(): [FunctionCall] call to operator new
# 1322| Type = [VoidPointerType] void *
# 1322| ValueCategory = prvalue
# 1322| getArgument(0): [ErrorExpr] <error expr>
# 1322| Type = [LongType] unsigned long
# 1322| ValueCategory = prvalue
# 1322| getArgument(1): [VariableAccess] p
# 1322| Type = [IntPointerType] int *
# 1322| ValueCategory = prvalue(load)
# 1322| getArgument(1).getFullyConverted(): [CStyleCast] (void *)...
# 1322| Conversion = [PointerConversion] pointer conversion
# 1322| Type = [VoidPointerType] void *
# 1322| ValueCategory = prvalue
# 1323| getStmt(1): [ReturnStmt] return ...
# 1326| [FunctionTemplateInstantiation,TopLevelFunction] Point defaultConstruct<Point>()
# 1326| <params>:
# 1326| getEntryPoint(): [BlockStmt] { ... }
# 1327| getStmt(0): [ReturnStmt] return ...
# 1327| getExpr(): [Literal] 0
# 1327| Type = [Struct] Point
# 1327| Value = [Literal] 0
# 1327| ValueCategory = prvalue
# 1326| [FunctionTemplateInstantiation,TopLevelFunction] String defaultConstruct<String>()
# 1326| <params>:
# 1326| getEntryPoint(): [BlockStmt] { ... }
# 1327| getStmt(0): [ReturnStmt] return ...
# 1327| getExpr(): [ConstructorCall] call to String
# 1327| Type = [VoidType] void
# 1327| ValueCategory = prvalue
# 1326| [TemplateFunction,TopLevelFunction] T defaultConstruct<T>()
# 1326| <params>:
# 1326| getEntryPoint(): [BlockStmt] { ... }
# 1327| getStmt(0): [ReturnStmt] return ...
# 1327| getExpr(): [Literal] 0
# 1327| Type = [TemplateParameter] T
# 1327| Value = [Literal] 0
# 1327| ValueCategory = prvalue
# 1327| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1327| Type = [TemplateParameter] T
# 1327| ValueCategory = prvalue(load)
# 1326| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor defaultConstruct<copy_constructor>()
# 1326| <params>:
# 1326| getEntryPoint(): [BlockStmt] { ... }
# 1327| getStmt(0): [ReturnStmt] return ...
# 1327| getExpr(): [ConstructorCall] call to copy_constructor
# 1327| Type = [VoidType] void
# 1327| ValueCategory = prvalue
# 1326| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only defaultConstruct<destructor_only>()
# 1326| <params>:
# 1326| getEntryPoint(): [BlockStmt] { ... }
# 1327| getStmt(0): [ReturnStmt] return ...
# 1327| getExpr(): [Literal] 0
# 1327| Type = [Class] destructor_only
# 1327| Value = [Literal] 0
# 1327| ValueCategory = prvalue
# 1330| [CopyAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only const&)
# 1330| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const constructor_only &
# 1330| [MoveAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only&&)
# 1330| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] constructor_only &&
# 1330| [CopyConstructor] void constructor_only::constructor_only(constructor_only const&)
# 1330| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const constructor_only &
# 1330| [MoveConstructor] void constructor_only::constructor_only(constructor_only&&)
# 1330| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] constructor_only &&
# 1335| [ConversionConstructor] void constructor_only::constructor_only(int)
# 1335| <params>:
# 1335| getParameter(0): [Parameter] x
# 1335| Type = [IntType] int
# 1338| [CopyAssignmentOperator] copy_constructor& copy_constructor::operator=(copy_constructor const&)
# 1338| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const copy_constructor &
# 1343| [Constructor] void copy_constructor::copy_constructor()
# 1343| <params>:
# 1344| [CopyConstructor] void copy_constructor::copy_constructor(copy_constructor const&)
# 1344| <params>:
# 1344| getParameter(0): [Parameter] (unnamed parameter 0)
# 1344| Type = [LValueReferenceType] const copy_constructor &
# 1346| [MemberFunction] void copy_constructor::method()
# 1346| <params>:
# 1349| [CopyAssignmentOperator] destructor_only& destructor_only::operator=(destructor_only const&)
# 1349| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const destructor_only &
# 1349| [Constructor] void destructor_only::destructor_only()
# 1349| <params>:
# 1351| [Destructor] void destructor_only::~destructor_only()
# 1351| <params>:
# 1353| [MemberFunction] void destructor_only::method()
# 1353| <params>:
# 1357| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<Point>(Point const&)
# 1357| <params>:
# 1357| getParameter(0): [Parameter] v
# 1357| Type = [LValueReferenceType] const Point &
# 1357| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<String>(String const&)
# 1357| <params>:
# 1357| getParameter(0): [Parameter] v
# 1357| Type = [LValueReferenceType] const String &
# 1357| [TemplateFunction,TopLevelFunction] void acceptRef<T>(T const&)
# 1357| <params>:
# 1357| getParameter(0): [Parameter] v
# 1357| Type = [LValueReferenceType] const T &
# 1357| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<copy_constructor>(copy_constructor const&)
# 1357| <params>:
# 1357| getParameter(0): [Parameter] v
# 1357| Type = [LValueReferenceType] const copy_constructor &
# 1357| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<destructor_only>(destructor_only const&)
# 1357| <params>:
# 1357| getParameter(0): [Parameter] v
# 1357| Type = [LValueReferenceType] const destructor_only &
# 1360| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<Point>(Point)
# 1360| <params>:
# 1360| getParameter(0): [Parameter] v
# 1360| Type = [Struct] Point
# 1360| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<String>(String)
# 1360| <params>:
# 1360| getParameter(0): [Parameter] v
# 1360| Type = [Struct] String
# 1360| [TemplateFunction,TopLevelFunction] void acceptValue<T>(T)
# 1360| <params>:
# 1360| getParameter(0): [Parameter] v
# 1360| Type = [TemplateParameter] T
# 1360| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<copy_constructor>(copy_constructor)
# 1360| <params>:
# 1360| getParameter(0): [Parameter] v
# 1360| Type = [Class] copy_constructor
# 1360| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<destructor_only>(destructor_only)
# 1360| <params>:
# 1360| getParameter(0): [Parameter] v
# 1360| Type = [Class] destructor_only
# 1363| [FunctionTemplateInstantiation,TopLevelFunction] POD_Derived returnValue<POD_Derived>()
# 1363| <params>:
# 1363| [FunctionTemplateInstantiation,TopLevelFunction] POD_Middle returnValue<POD_Middle>()
# 1363| <params>:
# 1363| [FunctionTemplateInstantiation,TopLevelFunction] Point returnValue<Point>()
# 1363| <params>:
# 1363| [FunctionTemplateInstantiation,TopLevelFunction] String returnValue<String>()
# 1363| <params>:
# 1363| [TemplateFunction,TopLevelFunction] T returnValue<T>()
# 1363| <params>:
# 1363| [FunctionTemplateInstantiation,TopLevelFunction] UnusualFields returnValue<UnusualFields>()
# 1363| <params>:
# 1363| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor returnValue<copy_constructor>()
# 1363| <params>:
# 1363| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only returnValue<destructor_only>()
# 1363| <params>:
# 1365| [TopLevelFunction] void temporary_string()
# 1365| <params>:
# 1365| getEntryPoint(): [BlockStmt] { ... }
# 1366| getStmt(0): [DeclStmt] declaration
# 1366| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s
# 1366| Type = [Struct] String
# 1366| getVariable().getInitializer(): [Initializer] initializer for s
# 1366| getExpr(): [FunctionCall] call to returnValue
# 1366| Type = [Struct] String
# 1366| ValueCategory = prvalue
# 1367| getStmt(1): [DeclStmt] declaration
# 1367| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rs
# 1367| Type = [LValueReferenceType] const String &
# 1367| getVariable().getInitializer(): [Initializer] initializer for rs
# 1367| getExpr(): [FunctionCall] call to returnValue
# 1367| Type = [Struct] String
# 1367| ValueCategory = prvalue
# 1367| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 1367| Type = [LValueReferenceType] const String &
# 1367| ValueCategory = prvalue
# 1367| getExpr(): [CStyleCast] (const String)...
# 1367| Conversion = [GlvalueConversion] glvalue conversion
# 1367| Type = [SpecifiedType] const String
# 1367| ValueCategory = lvalue
# 1367| getExpr(): [TemporaryObjectExpr] temporary object
# 1367| Type = [Struct] String
# 1367| ValueCategory = lvalue
# 1369| getStmt(2): [ExprStmt] ExprStmt
# 1369| getExpr(): [FunctionCall] call to acceptRef
# 1369| Type = [VoidType] void
# 1369| ValueCategory = prvalue
# 1369| getArgument(0): [VariableAccess] s
# 1369| Type = [Struct] String
# 1369| ValueCategory = lvalue
# 1369| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1369| Type = [LValueReferenceType] const String &
# 1369| ValueCategory = prvalue
# 1369| getExpr(): [CStyleCast] (const String)...
# 1369| Conversion = [GlvalueConversion] glvalue conversion
# 1369| Type = [SpecifiedType] const String
# 1369| ValueCategory = lvalue
# 1370| getStmt(3): [ExprStmt] ExprStmt
# 1370| getExpr(): [FunctionCall] call to acceptRef
# 1370| Type = [VoidType] void
# 1370| ValueCategory = prvalue
# 1370| getArgument(0): [ConstructorCall] call to String
# 1370| Type = [VoidType] void
# 1370| ValueCategory = prvalue
# 1370| getArgument(0): foo
# 1370| Type = [ArrayType] const char[4]
# 1370| Value = [StringLiteral] "foo"
# 1370| ValueCategory = lvalue
# 1370| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1370| Type = [PointerType] const char *
# 1370| ValueCategory = prvalue
# 1370| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1370| Type = [LValueReferenceType] const String &
# 1370| ValueCategory = prvalue
# 1370| getExpr(): [TemporaryObjectExpr] temporary object
# 1370| Type = [SpecifiedType] const String
# 1370| ValueCategory = lvalue
# 1371| getStmt(4): [ExprStmt] ExprStmt
# 1371| getExpr(): [FunctionCall] call to acceptValue
# 1371| Type = [VoidType] void
# 1371| ValueCategory = prvalue
# 1371| getArgument(0): [ConstructorCall] call to String
# 1371| Type = [VoidType] void
# 1371| ValueCategory = prvalue
# 1371| getArgument(0): [VariableAccess] s
# 1371| Type = [Struct] String
# 1371| ValueCategory = lvalue
# 1371| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1371| Type = [LValueReferenceType] const String &
# 1371| ValueCategory = prvalue
# 1371| getExpr(): [CStyleCast] (const String)...
# 1371| Conversion = [GlvalueConversion] glvalue conversion
# 1371| Type = [SpecifiedType] const String
# 1371| ValueCategory = lvalue
# 1371| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1371| Type = [Struct] String
# 1371| ValueCategory = lvalue
# 1372| getStmt(5): [ExprStmt] ExprStmt
# 1372| getExpr(): [FunctionCall] call to acceptValue
# 1372| Type = [VoidType] void
# 1372| ValueCategory = prvalue
# 1372| getArgument(0): [ConstructorCall] call to String
# 1372| Type = [VoidType] void
# 1372| ValueCategory = prvalue
# 1372| getArgument(0): foo
# 1372| Type = [ArrayType] const char[4]
# 1372| Value = [StringLiteral] "foo"
# 1372| ValueCategory = lvalue
# 1372| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1372| Type = [PointerType] const char *
# 1372| ValueCategory = prvalue
# 1372| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1372| Type = [Struct] String
# 1372| ValueCategory = lvalue
# 1373| getStmt(6): [ExprStmt] ExprStmt
# 1373| getExpr(): [FunctionCall] call to c_str
# 1373| Type = [PointerType] const char *
# 1373| ValueCategory = prvalue
# 1373| getQualifier(): [ConstructorCall] call to String
# 1373| Type = [VoidType] void
# 1373| ValueCategory = prvalue
# 1373| getQualifier().getFullyConverted(): [CStyleCast] (const String)...
# 1373| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion
# 1373| Type = [SpecifiedType] const String
# 1373| ValueCategory = prvalue
# 1373| getExpr(): [TemporaryObjectExpr] temporary object
# 1373| Type = [Struct] String
# 1373| ValueCategory = prvalue(load)
# 1374| getStmt(7): [ExprStmt] ExprStmt
# 1374| getExpr(): [FunctionCall] call to c_str
# 1374| Type = [PointerType] const char *
# 1374| ValueCategory = prvalue
# 1374| getQualifier(): [FunctionCall] call to returnValue
# 1374| Type = [Struct] String
# 1374| ValueCategory = prvalue
# 1374| getQualifier().getFullyConverted(): [CStyleCast] (const String)...
# 1374| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion
# 1374| Type = [SpecifiedType] const String
# 1374| ValueCategory = prvalue
# 1374| getExpr(): [TemporaryObjectExpr] temporary object
# 1374| Type = [Struct] String
# 1374| ValueCategory = prvalue(load)
# 1376| getStmt(8): [ExprStmt] ExprStmt
# 1376| getExpr(): [FunctionCall] call to defaultConstruct
# 1376| Type = [Struct] String
# 1376| ValueCategory = prvalue
# 1376| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1376| Type = [Struct] String
# 1376| ValueCategory = prvalue(load)
# 1377| getStmt(9): [ReturnStmt] return ...
# 1379| [TopLevelFunction] void temporary_destructor_only()
# 1379| <params>:
# 1379| getEntryPoint(): [BlockStmt] { ... }
# 1380| getStmt(0): [DeclStmt] declaration
# 1380| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 1380| Type = [Class] destructor_only
# 1380| getVariable().getInitializer(): [Initializer] initializer for d
# 1380| getExpr(): [FunctionCall] call to returnValue
# 1380| Type = [Class] destructor_only
# 1380| ValueCategory = prvalue
# 1381| getStmt(1): [DeclStmt] declaration
# 1381| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd
# 1381| Type = [LValueReferenceType] const destructor_only &
# 1381| getVariable().getInitializer(): [Initializer] initializer for rd
# 1381| getExpr(): [FunctionCall] call to returnValue
# 1381| Type = [Class] destructor_only
# 1381| ValueCategory = prvalue
# 1381| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 1381| Type = [LValueReferenceType] const destructor_only &
# 1381| ValueCategory = prvalue
# 1381| getExpr(): [CStyleCast] (const destructor_only)...
# 1381| Conversion = [GlvalueConversion] glvalue conversion
# 1381| Type = [SpecifiedType] const destructor_only
# 1381| ValueCategory = lvalue
# 1381| getExpr(): [TemporaryObjectExpr] temporary object
# 1381| Type = [Class] destructor_only
# 1381| ValueCategory = lvalue
# 1382| getStmt(2): [DeclStmt] declaration
# 1382| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2
# 1382| Type = [Class] destructor_only
# 1383| getStmt(3): [ExprStmt] ExprStmt
# 1383| getExpr(): [FunctionCall] call to acceptRef
# 1383| Type = [VoidType] void
# 1383| ValueCategory = prvalue
# 1383| getArgument(0): [VariableAccess] d
# 1383| Type = [Class] destructor_only
# 1383| ValueCategory = lvalue
# 1383| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1383| Type = [LValueReferenceType] const destructor_only &
# 1383| ValueCategory = prvalue
# 1383| getExpr(): [CStyleCast] (const destructor_only)...
# 1383| Conversion = [GlvalueConversion] glvalue conversion
# 1383| Type = [SpecifiedType] const destructor_only
# 1383| ValueCategory = lvalue
# 1384| getStmt(4): [ExprStmt] ExprStmt
# 1384| getExpr(): [FunctionCall] call to acceptValue
# 1384| Type = [VoidType] void
# 1384| ValueCategory = prvalue
# 1384| getArgument(0): [VariableAccess] d
# 1384| Type = [Class] destructor_only
# 1384| ValueCategory = prvalue(load)
# 1384| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1384| Type = [Class] destructor_only
# 1384| ValueCategory = lvalue
# 1385| getStmt(5): [ExprStmt] ExprStmt
# 1385| getExpr(): [FunctionCall] call to method
# 1385| Type = [VoidType] void
# 1385| ValueCategory = prvalue
# 1385| getQualifier(): [Literal] 0
# 1385| Type = [Class] destructor_only
# 1385| Value = [Literal] 0
# 1385| ValueCategory = prvalue
# 1385| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1385| Type = [Class] destructor_only
# 1385| ValueCategory = prvalue(load)
# 1386| getStmt(6): [ExprStmt] ExprStmt
# 1386| getExpr(): [FunctionCall] call to method
# 1386| Type = [VoidType] void
# 1386| ValueCategory = prvalue
# 1386| getQualifier(): [FunctionCall] call to returnValue
# 1386| Type = [Class] destructor_only
# 1386| ValueCategory = prvalue
# 1386| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1386| Type = [Class] destructor_only
# 1386| ValueCategory = prvalue(load)
# 1388| getStmt(7): [ExprStmt] ExprStmt
# 1388| getExpr(): [FunctionCall] call to defaultConstruct
# 1388| Type = [Class] destructor_only
# 1388| ValueCategory = prvalue
# 1388| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1388| Type = [Class] destructor_only
# 1388| ValueCategory = prvalue(load)
# 1389| getStmt(8): [ReturnStmt] return ...
# 1391| [TopLevelFunction] void temporary_copy_constructor()
# 1391| <params>:
# 1391| getEntryPoint(): [BlockStmt] { ... }
# 1392| getStmt(0): [DeclStmt] declaration
# 1392| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
# 1392| Type = [Class] copy_constructor
# 1392| getVariable().getInitializer(): [Initializer] initializer for d
# 1392| getExpr(): [FunctionCall] call to returnValue
# 1392| Type = [Class] copy_constructor
# 1392| ValueCategory = prvalue
# 1393| getStmt(1): [DeclStmt] declaration
# 1393| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd
# 1393| Type = [LValueReferenceType] const copy_constructor &
# 1393| getVariable().getInitializer(): [Initializer] initializer for rd
# 1393| getExpr(): [FunctionCall] call to returnValue
# 1393| Type = [Class] copy_constructor
# 1393| ValueCategory = prvalue
# 1393| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 1393| Type = [LValueReferenceType] const copy_constructor &
# 1393| ValueCategory = prvalue
# 1393| getExpr(): [CStyleCast] (const copy_constructor)...
# 1393| Conversion = [GlvalueConversion] glvalue conversion
# 1393| Type = [SpecifiedType] const copy_constructor
# 1393| ValueCategory = lvalue
# 1393| getExpr(): [TemporaryObjectExpr] temporary object
# 1393| Type = [Class] copy_constructor
# 1393| ValueCategory = lvalue
# 1394| getStmt(2): [DeclStmt] declaration
# 1394| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2
# 1394| Type = [Class] copy_constructor
# 1394| getVariable().getInitializer(): [Initializer] initializer for d2
# 1394| getExpr(): [ConstructorCall] call to copy_constructor
# 1394| Type = [VoidType] void
# 1394| ValueCategory = prvalue
# 1395| getStmt(3): [ExprStmt] ExprStmt
# 1395| getExpr(): [FunctionCall] call to acceptRef
# 1395| Type = [VoidType] void
# 1395| ValueCategory = prvalue
# 1395| getArgument(0): [VariableAccess] d
# 1395| Type = [Class] copy_constructor
# 1395| ValueCategory = lvalue
# 1395| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1395| Type = [LValueReferenceType] const copy_constructor &
# 1395| ValueCategory = prvalue
# 1395| getExpr(): [CStyleCast] (const copy_constructor)...
# 1395| Conversion = [GlvalueConversion] glvalue conversion
# 1395| Type = [SpecifiedType] const copy_constructor
# 1395| ValueCategory = lvalue
# 1396| getStmt(4): [ExprStmt] ExprStmt
# 1396| getExpr(): [FunctionCall] call to acceptValue
# 1396| Type = [VoidType] void
# 1396| ValueCategory = prvalue
# 1396| getArgument(0): [ConstructorCall] call to copy_constructor
# 1396| Type = [VoidType] void
# 1396| ValueCategory = prvalue
# 1396| getArgument(0): [VariableAccess] d
# 1396| Type = [Class] copy_constructor
# 1396| ValueCategory = lvalue
# 1396| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1396| Type = [LValueReferenceType] const copy_constructor &
# 1396| ValueCategory = prvalue
# 1396| getExpr(): [CStyleCast] (const copy_constructor)...
# 1396| Conversion = [GlvalueConversion] glvalue conversion
# 1396| Type = [SpecifiedType] const copy_constructor
# 1396| ValueCategory = lvalue
# 1396| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1396| Type = [Class] copy_constructor
# 1396| ValueCategory = lvalue
# 1397| getStmt(5): [ExprStmt] ExprStmt
# 1397| getExpr(): [FunctionCall] call to method
# 1397| Type = [VoidType] void
# 1397| ValueCategory = prvalue
# 1397| getQualifier(): [ConstructorCall] call to copy_constructor
# 1397| Type = [VoidType] void
# 1397| ValueCategory = prvalue
# 1397| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1397| Type = [Class] copy_constructor
# 1397| ValueCategory = prvalue(load)
# 1398| getStmt(6): [ExprStmt] ExprStmt
# 1398| getExpr(): [FunctionCall] call to method
# 1398| Type = [VoidType] void
# 1398| ValueCategory = prvalue
# 1398| getQualifier(): [FunctionCall] call to returnValue
# 1398| Type = [Class] copy_constructor
# 1398| ValueCategory = prvalue
# 1398| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1398| Type = [Class] copy_constructor
# 1398| ValueCategory = prvalue(load)
# 1399| getStmt(7): [ExprStmt] ExprStmt
# 1399| getExpr(): [FunctionCall] call to defaultConstruct
# 1399| Type = [Class] copy_constructor
# 1399| ValueCategory = prvalue
# 1399| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1399| Type = [Class] copy_constructor
# 1399| ValueCategory = prvalue(load)
# 1401| getStmt(8): [DeclStmt] declaration
# 1401| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 1401| Type = [IntType] int
# 1401| getVariable().getInitializer(): [Initializer] initializer for y
# 1401| getExpr(): [ValueFieldAccess] y
# 1401| Type = [IntType] int
# 1401| ValueCategory = prvalue
# 1401| getQualifier(): [FunctionCall] call to returnValue
# 1401| Type = [Class] copy_constructor
# 1401| ValueCategory = prvalue
# 1401| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1401| Type = [Class] copy_constructor
# 1401| ValueCategory = prvalue(load)
# 1402| getStmt(9): [ReturnStmt] return ...
# 1404| [TopLevelFunction] void temporary_point()
# 1404| <params>:
# 1404| getEntryPoint(): [BlockStmt] { ... }
# 1405| getStmt(0): [DeclStmt] declaration
# 1405| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p
# 1405| Type = [Struct] Point
# 1405| getVariable().getInitializer(): [Initializer] initializer for p
# 1405| getExpr(): [FunctionCall] call to returnValue
# 1405| Type = [Struct] Point
# 1405| ValueCategory = prvalue
# 1406| getStmt(1): [DeclStmt] declaration
# 1406| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rp
# 1406| Type = [LValueReferenceType] const Point &
# 1406| getVariable().getInitializer(): [Initializer] initializer for rp
# 1406| getExpr(): [FunctionCall] call to returnValue
# 1406| Type = [Struct] Point
# 1406| ValueCategory = prvalue
# 1406| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 1406| Type = [LValueReferenceType] const Point &
# 1406| ValueCategory = prvalue
# 1406| getExpr(): [CStyleCast] (const Point)...
# 1406| Conversion = [GlvalueConversion] glvalue conversion
# 1406| Type = [SpecifiedType] const Point
# 1406| ValueCategory = lvalue
# 1406| getExpr(): [TemporaryObjectExpr] temporary object
# 1406| Type = [Struct] Point
# 1406| ValueCategory = lvalue
# 1408| getStmt(2): [ExprStmt] ExprStmt
# 1408| getExpr(): [FunctionCall] call to acceptRef
# 1408| Type = [VoidType] void
# 1408| ValueCategory = prvalue
# 1408| getArgument(0): [VariableAccess] p
# 1408| Type = [Struct] Point
# 1408| ValueCategory = lvalue
# 1408| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
# 1408| Type = [LValueReferenceType] const Point &
# 1408| ValueCategory = prvalue
# 1408| getExpr(): [CStyleCast] (const Point)...
# 1408| Conversion = [GlvalueConversion] glvalue conversion
# 1408| Type = [SpecifiedType] const Point
# 1408| ValueCategory = lvalue
# 1409| getStmt(3): [ExprStmt] ExprStmt
# 1409| getExpr(): [FunctionCall] call to acceptValue
# 1409| Type = [VoidType] void
# 1409| ValueCategory = prvalue
# 1409| getArgument(0): [VariableAccess] p
# 1409| Type = [Struct] Point
# 1409| ValueCategory = prvalue(load)
# 1410| getStmt(4): [ExprStmt] ExprStmt
# 1410| getExpr(): [ValueFieldAccess] x
# 1410| Type = [IntType] int
# 1410| Value = [ValueFieldAccess] 0
# 1410| ValueCategory = prvalue
# 1410| getQualifier(): [Literal] 0
# 1410| Type = [Struct] Point
# 1410| Value = [Literal] 0
# 1410| ValueCategory = prvalue
# 1410| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object
# 1410| Type = [Struct] Point
# 1410| ValueCategory = prvalue(load)
# 1411| getStmt(5): [DeclStmt] declaration
# 1411| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 1411| Type = [IntType] int
# 1411| getVariable().getInitializer(): [Initializer] initializer for y
# 1411| getExpr(): [ValueFieldAccess] y
# 1411| Type = [IntType] int
# 1411| ValueCategory = prvalue
# 1411| getQualifier(): [FunctionCall] call to returnValue
# 1411| Type = [Struct] Point
# 1411| ValueCategory = prvalue
# 1413| getStmt(6): [ExprStmt] ExprStmt
# 1413| getExpr(): [FunctionCall] call to defaultConstruct
# 1413| Type = [Struct] Point
# 1413| ValueCategory = prvalue
# 1414| getStmt(7): [ReturnStmt] return ...
# 1416| [CopyAssignmentOperator] UnusualFields& UnusualFields::operator=(UnusualFields const&)
# 1416| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const UnusualFields &
# 1416| [Constructor] void UnusualFields::UnusualFields()
# 1416| <params>:
# 1416| [CopyConstructor] void UnusualFields::UnusualFields(UnusualFields const&)
# 1416| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const UnusualFields &
# 1416| [MoveConstructor] void UnusualFields::UnusualFields(UnusualFields&&)
# 1416| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] UnusualFields &&
# 1421| [TopLevelFunction] void temporary_unusual_fields()
# 1421| <params>:
# 1421| getEntryPoint(): [BlockStmt] { ... }
# 1422| getStmt(0): [DeclStmt] declaration
# 1422| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx
# 1422| Type = [LValueReferenceType] const int &
# 1422| getVariable().getInitializer(): [Initializer] initializer for rx
# 1422| getExpr(): [ValueFieldAccess] r
# 1422| Type = [LValueReferenceType] int &
# 1422| ValueCategory = prvalue
# 1422| getQualifier(): [FunctionCall] call to returnValue
# 1422| Type = [Struct] UnusualFields
# 1422| ValueCategory = prvalue
# 1422| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 1422| Type = [LValueReferenceType] const int &
# 1422| ValueCategory = prvalue
# 1422| getExpr(): [CStyleCast] (const int)...
# 1422| Conversion = [GlvalueConversion] glvalue conversion
# 1422| Type = [SpecifiedType] const int
# 1422| ValueCategory = lvalue
# 1422| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
# 1422| Type = [IntType] int
# 1422| ValueCategory = lvalue
# 1423| getStmt(1): [DeclStmt] declaration
# 1423| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 1423| Type = [IntType] int
# 1423| getVariable().getInitializer(): [Initializer] initializer for x
# 1423| getExpr(): [ValueFieldAccess] r
# 1423| Type = [LValueReferenceType] int &
# 1423| ValueCategory = prvalue
# 1423| getQualifier(): [FunctionCall] call to returnValue
# 1423| Type = [Struct] UnusualFields
# 1423| ValueCategory = prvalue
# 1423| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
# 1423| Type = [IntType] int
# 1423| ValueCategory = prvalue(load)
# 1425| getStmt(2): [DeclStmt] declaration
# 1425| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rf
# 1425| Type = [LValueReferenceType] const float &
# 1425| getVariable().getInitializer(): [Initializer] initializer for rf
# 1425| getExpr(): [ArrayExpr] access to array
# 1425| Type = [FloatType] float
# 1425| ValueCategory = lvalue
# 1425| getArrayBase(): [ValueFieldAccess] a
# 1425| Type = [ArrayType] float[10]
# 1425| ValueCategory = prvalue
# 1425| getQualifier(): [FunctionCall] call to returnValue
# 1425| Type = [Struct] UnusualFields
# 1425| ValueCategory = prvalue
# 1425| getArrayOffset(): [Literal] 3
# 1425| Type = [IntType] int
# 1425| Value = [Literal] 3
# 1425| ValueCategory = prvalue
# 1425| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1425| Type = [PointerType] float *
# 1425| ValueCategory = prvalue
# 1425| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
# 1425| Type = [LValueReferenceType] const float &
# 1425| ValueCategory = prvalue
# 1425| getExpr(): [CStyleCast] (const float)...
# 1425| Conversion = [GlvalueConversion] glvalue conversion
# 1425| Type = [SpecifiedType] const float
# 1425| ValueCategory = lvalue
# 1426| getStmt(3): [DeclStmt] declaration
# 1426| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f
# 1426| Type = [FloatType] float
# 1426| getVariable().getInitializer(): [Initializer] initializer for f
# 1426| getExpr(): [ArrayExpr] access to array
# 1426| Type = [FloatType] float
# 1426| ValueCategory = prvalue(load)
# 1426| getArrayBase(): [ValueFieldAccess] a
# 1426| Type = [ArrayType] float[10]
# 1426| ValueCategory = prvalue
# 1426| getQualifier(): [FunctionCall] call to returnValue
# 1426| Type = [Struct] UnusualFields
# 1426| ValueCategory = prvalue
# 1426| getArrayOffset(): [Literal] 5
# 1426| Type = [IntType] int
# 1426| Value = [Literal] 5
# 1426| ValueCategory = prvalue
# 1426| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 1426| Type = [PointerType] float *
# 1426| ValueCategory = prvalue
# 1427| getStmt(4): [ReturnStmt] return ...
# 1429| [CopyAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base const&)
# 1429| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const POD_Base &
# 1429| [MoveAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base&&)
# 1429| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] POD_Base &&
# 1432| [ConstMemberFunction] float POD_Base::f() const
# 1432| <params>:
# 1435| [CopyAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle const&)
# 1435| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const POD_Middle &
# 1435| [MoveAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle&&)
# 1435| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] POD_Middle &&
# 1435| [Constructor] void POD_Middle::POD_Middle()
# 1435| <params>:
# 1439| [CopyAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived const&)
# 1439| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const POD_Derived &
# 1439| [MoveAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived&&)
# 1439| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] POD_Derived &&
# 1439| [Constructor] void POD_Derived::POD_Derived()
# 1439| <params>:
# 1443| [TopLevelFunction] void temporary_hierarchy()
# 1443| <params>:
# 1443| getEntryPoint(): [BlockStmt] { ... }
# 1444| getStmt(0): [DeclStmt] declaration
# 1444| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
# 1444| Type = [Struct] POD_Base
# 1444| getVariable().getInitializer(): [Initializer] initializer for b
# 1444| getExpr(): [FunctionCall] call to returnValue
# 1444| Type = [Struct] POD_Middle
# 1444| ValueCategory = prvalue
# 1444| getExpr().getFullyConverted(): [CStyleCast] (POD_Base)...
# 1444| Conversion = [BaseClassConversion] base class conversion
# 1444| Type = [Struct] POD_Base
# 1444| ValueCategory = prvalue
# 1445| getStmt(1): [ExprStmt] ExprStmt
# 1445| getExpr(): [AssignExpr] ... = ...
# 1445| Type = [Struct] POD_Base
# 1445| ValueCategory = lvalue
# 1445| getLValue(): [VariableAccess] b
# 1445| Type = [Struct] POD_Base
# 1445| ValueCategory = lvalue
# 1445| getRValue(): [FunctionCall] call to returnValue
# 1445| Type = [Struct] POD_Derived
# 1445| ValueCategory = prvalue
# 1445| getRValue().getFullyConverted(): [CStyleCast] (POD_Base)...
# 1445| Conversion = [BaseClassConversion] base class conversion
# 1445| Type = [Struct] POD_Base
# 1445| ValueCategory = prvalue(load)
# 1445| getExpr(): [CStyleCast] (POD_Middle)...
# 1445| Conversion = [BaseClassConversion] base class conversion
# 1445| Type = [Struct] POD_Middle
# 1445| ValueCategory = lvalue
# 1445| getExpr(): [TemporaryObjectExpr] temporary object
# 1445| Type = [Struct] POD_Derived
# 1445| ValueCategory = lvalue
# 1445| getExpr(): [ParenthesisExpr] (...)
# 1445| Type = [Struct] POD_Derived
# 1445| ValueCategory = prvalue
# 1446| getStmt(2): [DeclStmt] declaration
# 1446| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
# 1446| Type = [IntType] int
# 1446| getVariable().getInitializer(): [Initializer] initializer for x
# 1446| getExpr(): [ValueFieldAccess] x
# 1446| Type = [IntType] int
# 1446| ValueCategory = prvalue
# 1446| getQualifier(): [FunctionCall] call to returnValue
# 1446| Type = [Struct] POD_Derived
# 1446| ValueCategory = prvalue
# 1446| getQualifier().getFullyConverted(): [CStyleCast] (POD_Base)...
# 1446| Conversion = [BaseClassConversion] base class conversion
# 1446| Type = [Struct] POD_Base
# 1446| ValueCategory = prvalue
# 1446| getExpr(): [CStyleCast] (POD_Middle)...
# 1446| Conversion = [BaseClassConversion] base class conversion
# 1446| Type = [Struct] POD_Middle
# 1446| ValueCategory = prvalue
# 1447| getStmt(3): [DeclStmt] declaration
# 1447| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f
# 1447| Type = [FloatType] float
# 1447| getVariable().getInitializer(): [Initializer] initializer for f
# 1447| getExpr(): [FunctionCall] call to f
# 1447| Type = [FloatType] float
# 1447| ValueCategory = prvalue
# 1447| getQualifier(): [FunctionCall] call to returnValue
# 1447| Type = [Struct] POD_Derived
# 1447| ValueCategory = prvalue
# 1447| getQualifier().getFullyConverted(): [CStyleCast] (const POD_Base)...
# 1447| Conversion = [BaseClassConversion] base class conversion
# 1447| Type = [SpecifiedType] const POD_Base
# 1447| ValueCategory = prvalue
# 1447| getExpr(): [CStyleCast] (POD_Middle)...
# 1447| Conversion = [BaseClassConversion] base class conversion
# 1447| Type = [Struct] POD_Middle
# 1447| ValueCategory = prvalue
# 1447| getExpr(): [ParenthesisExpr] (...)
# 1447| Type = [Struct] POD_Derived
# 1447| ValueCategory = prvalue
# 1448| getStmt(4): [ReturnStmt] return ...
perf-regression.cpp:
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
# 4| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Big &
# 4| [MoveAssignmentOperator] Big& Big::operator=(Big&&)
# 4| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Big &&
# 4| [CopyConstructor] void Big::Big(Big const&)
# 4| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Big &
# 4| [MoveConstructor] void Big::Big(Big&&)
# 4| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Big &&
# 6| [Constructor] void Big::Big()
# 6| <params>:
# 6| <initializations>:
# 6| getInitializer(0): [ConstructorFieldInit] constructor init of field buffer
# 6| Type = [ArrayType] char[1073741824]
# 6| ValueCategory = prvalue
# 6| getExpr(): [ArrayAggregateLiteral] {...}
# 6| Type = [ArrayType] char[1073741824]
# 6| ValueCategory = prvalue
# 6| getEntryPoint(): [BlockStmt] { ... }
# 6| getStmt(0): [ReturnStmt] return ...
# 9| [TopLevelFunction] int main()
# 9| <params>:
# 9| getEntryPoint(): [BlockStmt] { ... }
# 10| getStmt(0): [DeclStmt] declaration
# 10| getDeclarationEntry(0): [VariableDeclarationEntry] definition of big
# 10| Type = [PointerType] Big *
# 10| getVariable().getInitializer(): [Initializer] initializer for big
# 10| getExpr(): [NewExpr] new
# 10| Type = [PointerType] Big *
# 10| ValueCategory = prvalue
# 10| getInitializer(): [ConstructorCall] call to Big
# 10| Type = [VoidType] void
# 10| ValueCategory = prvalue
# 12| getStmt(1): [ReturnStmt] return ...
# 12| getExpr(): [Literal] 0
# 12| Type = [IntType] int
# 12| Value = [Literal] 0
# 12| ValueCategory = prvalue
struct_init.cpp:
# 1| [TopLevelFunction] int handler1(void*)
# 1| <params>:
# 1| getParameter(0): [Parameter] p
# 1| Type = [VoidPointerType] void *
# 2| [TopLevelFunction] int handler2(void*)
# 2| <params>:
# 2| getParameter(0): [Parameter] p
# 2| Type = [VoidPointerType] void *
# 4| [CopyAssignmentOperator] Info& Info::operator=(Info const&)
# 4| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [LValueReferenceType] const Info &
# 4| [MoveAssignmentOperator] Info& Info::operator=(Info&&)
# 4| <params>:
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
#-----| Type = [RValueReferenceType] Info &&
# 16| [TopLevelFunction] void let_info_escape(Info*)
# 16| <params>:
# 16| getParameter(0): [Parameter] info
# 16| Type = [PointerType] Info *
# 16| getEntryPoint(): [BlockStmt] { ... }
# 17| getStmt(0): [ExprStmt] ExprStmt
# 17| getExpr(): [AssignExpr] ... = ...
# 17| Type = [PointerType] Info *
# 17| ValueCategory = lvalue
# 17| getLValue(): [VariableAccess] global_pointer
# 17| Type = [PointerType] Info *
# 17| ValueCategory = lvalue
# 17| getRValue(): [VariableAccess] info
# 17| Type = [PointerType] Info *
# 17| ValueCategory = prvalue(load)
# 18| getStmt(1): [ReturnStmt] return ...
# 20| [TopLevelFunction] void declare_static_infos()
# 20| <params>:
# 20| getEntryPoint(): [BlockStmt] { ... }
# 21| getStmt(0): [DeclStmt] declaration
# 21| getDeclarationEntry(0): [VariableDeclarationEntry] definition of static_infos
# 21| Type = [ArrayType] Info[]
# 21| getVariable().getInitializer(): [Initializer] initializer for static_infos
# 21| getExpr(): [ArrayAggregateLiteral] {...}
# 21| Type = [ArrayType] Info[2]
# 21| ValueCategory = prvalue
# 22| getElementExpr(0): [ClassAggregateLiteral] {...}
# 22| Type = [Struct] Info
# 22| ValueCategory = prvalue
# 22| getFieldExpr(name): 1
# 22| Type = [ArrayType] const char[2]
# 22| Value = [StringLiteral] "1"
# 22| ValueCategory = lvalue
# 22| getFieldExpr(handler): [FunctionAccess] handler1
# 22| Type = [FunctionPointerType] ..(*)(..)
# 22| ValueCategory = prvalue(load)
# 22| getFieldExpr(name).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 22| Type = [PointerType] const char *
# 22| ValueCategory = prvalue
# 23| getElementExpr(1): [ClassAggregateLiteral] {...}
# 23| Type = [Struct] Info
# 23| ValueCategory = prvalue
# 23| getFieldExpr(name): 2
# 23| Type = [ArrayType] const char[2]
# 23| Value = [StringLiteral] "2"
# 23| ValueCategory = lvalue
# 23| getFieldExpr(handler): [AddressOfExpr] & ...
# 23| Type = [FunctionPointerType] ..(*)(..)
# 23| ValueCategory = prvalue
# 23| getOperand(): [FunctionAccess] handler2
# 23| Type = [RoutineType] ..()(..)
# 23| ValueCategory = lvalue
# 23| getFieldExpr(name).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 23| Type = [PointerType] const char *
# 23| ValueCategory = prvalue
# 25| getStmt(1): [ExprStmt] ExprStmt
# 25| getExpr(): [FunctionCall] call to let_info_escape
# 25| Type = [VoidType] void
# 25| ValueCategory = prvalue
# 25| getArgument(0): [VariableAccess] static_infos
# 25| Type = [ArrayType] Info[2]
# 25| ValueCategory = lvalue
# 25| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 25| Type = [PointerType] Info *
# 25| ValueCategory = prvalue
# 26| getStmt(2): [ReturnStmt] return ...
# 28| [TopLevelFunction] void declare_local_infos()
# 28| <params>:
# 28| getEntryPoint(): [BlockStmt] { ... }
# 29| getStmt(0): [DeclStmt] declaration
# 29| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_infos
# 29| Type = [ArrayType] Info[]
# 29| getVariable().getInitializer(): [Initializer] initializer for local_infos
# 29| getExpr(): [ArrayAggregateLiteral] {...}
# 29| Type = [ArrayType] Info[2]
# 29| ValueCategory = prvalue
# 30| getElementExpr(0): [ClassAggregateLiteral] {...}
# 30| Type = [Struct] Info
# 30| ValueCategory = prvalue
# 30| getFieldExpr(name): 1
# 30| Type = [ArrayType] const char[2]
# 30| Value = [StringLiteral] "1"
# 30| ValueCategory = lvalue
# 30| getFieldExpr(handler): [FunctionAccess] handler1
# 30| Type = [FunctionPointerType] ..(*)(..)
# 30| ValueCategory = prvalue(load)
# 30| getFieldExpr(name).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 30| Type = [PointerType] const char *
# 30| ValueCategory = prvalue
# 31| getElementExpr(1): [ClassAggregateLiteral] {...}
# 31| Type = [Struct] Info
# 31| ValueCategory = prvalue
# 31| getFieldExpr(name): 2
# 31| Type = [ArrayType] const char[2]
# 31| Value = [StringLiteral] "2"
# 31| ValueCategory = lvalue
# 31| getFieldExpr(handler): [AddressOfExpr] & ...
# 31| Type = [FunctionPointerType] ..(*)(..)
# 31| ValueCategory = prvalue
# 31| getOperand(): [FunctionAccess] handler2
# 31| Type = [RoutineType] ..()(..)
# 31| ValueCategory = lvalue
# 31| getFieldExpr(name).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 31| Type = [PointerType] const char *
# 31| ValueCategory = prvalue
# 33| getStmt(1): [ExprStmt] ExprStmt
# 33| getExpr(): [FunctionCall] call to let_info_escape
# 33| Type = [VoidType] void
# 33| ValueCategory = prvalue
# 33| getArgument(0): [VariableAccess] local_infos
# 33| Type = [ArrayType] Info[2]
# 33| ValueCategory = lvalue
# 33| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 33| Type = [PointerType] Info *
# 33| ValueCategory = prvalue
# 34| getStmt(2): [ReturnStmt] return ...
# 36| [TopLevelFunction] void declare_static_runtime_infos(char const*)
# 36| <params>:
# 36| getParameter(0): [Parameter] name1
# 36| Type = [PointerType] const char *
# 36| getEntryPoint(): [BlockStmt] { ... }
# 37| getStmt(0): [DeclStmt] declaration
# 37| getDeclarationEntry(0): [VariableDeclarationEntry] definition of static_infos
# 37| Type = [ArrayType] Info[]
# 37| getVariable().getInitializer(): [Initializer] initializer for static_infos
# 37| getExpr(): [ArrayAggregateLiteral] {...}
# 37| Type = [ArrayType] Info[2]
# 37| ValueCategory = prvalue
# 38| getElementExpr(0): [ClassAggregateLiteral] {...}
# 38| Type = [Struct] Info
# 38| ValueCategory = prvalue
# 38| getFieldExpr(name): [VariableAccess] name1
# 38| Type = [PointerType] const char *
# 38| ValueCategory = prvalue(load)
# 38| getFieldExpr(handler): [FunctionAccess] handler1
# 38| Type = [FunctionPointerType] ..(*)(..)
# 38| ValueCategory = prvalue(load)
# 39| getElementExpr(1): [ClassAggregateLiteral] {...}
# 39| Type = [Struct] Info
# 39| ValueCategory = prvalue
# 39| getFieldExpr(name): 2
# 39| Type = [ArrayType] const char[2]
# 39| Value = [StringLiteral] "2"
# 39| ValueCategory = lvalue
# 39| getFieldExpr(handler): [AddressOfExpr] & ...
# 39| Type = [FunctionPointerType] ..(*)(..)
# 39| ValueCategory = prvalue
# 39| getOperand(): [FunctionAccess] handler2
# 39| Type = [RoutineType] ..()(..)
# 39| ValueCategory = lvalue
# 39| getFieldExpr(name).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 39| Type = [PointerType] const char *
# 39| ValueCategory = prvalue
# 41| getStmt(1): [ExprStmt] ExprStmt
# 41| getExpr(): [FunctionCall] call to let_info_escape
# 41| Type = [VoidType] void
# 41| ValueCategory = prvalue
# 41| getArgument(0): [VariableAccess] static_infos
# 41| Type = [ArrayType] Info[2]
# 41| ValueCategory = lvalue
# 41| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
# 41| Type = [PointerType] Info *
# 41| ValueCategory = prvalue
# 42| getStmt(2): [ReturnStmt] return ...