1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
[0;1;32mTranslationUnitDecl[0m[0;33m 0x7e63838[0m <[0;33m<invalid sloc>[0m> [0;33m<invalid sloc>[0m
[0;34m|-[0m[0;1;32mTypedefDecl[0m[0;33m 0x7e64110[0m <[0;33m<invalid sloc>[0m> [0;33m<invalid sloc>[0m implicit[0;1;36m __int128_t[0m [0;32m'__int128'[0m
[0;34m| `-[0m[0;32mBuiltinType[0m[0;33m 0x7e63dd0[0m [0;32m'__int128'[0m
[0;34m|-[0m[0;1;32mTypedefDecl[0m[0;33m 0x7e64180[0m <[0;33m<invalid sloc>[0m> [0;33m<invalid sloc>[0m implicit[0;1;36m __uint128_t[0m [0;32m'unsigned __int128'[0m
[0;34m| `-[0m[0;32mBuiltinType[0m[0;33m 0x7e63df0[0m [0;32m'unsigned __int128'[0m
[0;34m|-[0m[0;1;32mTypedefDecl[0m[0;33m 0x7e644f8[0m <[0;33m<invalid sloc>[0m> [0;33m<invalid sloc>[0m implicit[0;1;36m __NSConstantString[0m [0;32m'__NSConstantString_tag'[0m
[0;34m| `-[0m[0;32mRecordType[0m[0;33m 0x7e64270[0m [0;32m'__NSConstantString_tag'[0m
[0;34m| `-[0m[0;1;32mCXXRecord[0m[0;33m 0x7e641d8[0m[0;1;36m '__NSConstantString_tag'[0m
[0;34m|-[0m[0;1;32mTypedefDecl[0m[0;33m 0x7e64590[0m <[0;33m<invalid sloc>[0m> [0;33m<invalid sloc>[0m implicit[0;1;36m __builtin_ms_va_list[0m [0;32m'char *'[0m
[0;34m| `-[0m[0;32mPointerType[0m[0;33m 0x7e64550[0m [0;32m'char *'[0m
[0;34m| `-[0m[0;32mBuiltinType[0m[0;33m 0x7e638d0[0m [0;32m'char'[0m
[0;34m|-[0m[0;1;32mTypedefDecl[0m[0;33m 0x7ea1338[0m <[0;33m<invalid sloc>[0m> [0;33m<invalid sloc>[0m implicit[0;1;36m __builtin_va_list[0m [0;32m'__va_list_tag [1]'[0m
[0;34m| `-[0m[0;32mConstantArrayType[0m[0;33m 0x7ea12e0[0m [0;32m'__va_list_tag [1]'[0m 1
[0;34m| `-[0m[0;32mRecordType[0m[0;33m 0x7e64680[0m [0;32m'__va_list_tag'[0m
[0;34m| `-[0m[0;1;32mCXXRecord[0m[0;33m 0x7e645e8[0m[0;1;36m '__va_list_tag'[0m
[0;34m|-[0m[0;1;32mCXXRecordDecl[0m[0;33m 0x7ea1390[0m <[0;33mmain.cpp:2:1[0m, [0;33mline:12:1[0m> [0;33mline:2:7[0m referenced class[0;1;36m myClass[0m definition
[0;34m| |-[0m[0;1;32mDefinitionData[0m standard_layout has_user_declared_ctor
[0;34m| | |-[0m[0;1;32mDefaultConstructor[0m exists trivial
[0;34m| | |-[0m[0;1;32mCopyConstructor[0m simple trivial has_const_param implicit_has_const_param
[0;34m| | |-[0m[0;1;32mMoveConstructor[0m
[0;34m| | |-[0m[0;1;32mCopyAssignment[0m trivial has_const_param needs_implicit implicit_has_const_param
[0;34m| | |-[0m[0;1;32mMoveAssignment[0m
[0;34m| | `-[0m[0;1;32mDestructor[0m non_trivial user_declared
[0;34m| |-[0m[0;1;32mCXXRecordDecl[0m[0;33m 0x7ea14a8[0m <[0;33mcol:1[0m, [0;33mcol:7[0m> [0;33mcol:7[0m implicit referenced class[0;1;36m myClass[0m
[0;34m| |-[0m[0;1;32mAccessSpecDecl[0m[0;33m 0x7ea1538[0m <[0;33mline:3:3[0m, [0;33mcol:9[0m> [0;33mcol:3[0m public
[0;34m| |-[0m[0;1;32mCXXConstructorDecl[0m[0;33m 0x7ea15e8[0m <[0;33mline:4:5[0m, [0;33mcol:23[0m> [0;33mcol:5[0m used[0;1;36m myClass[0m [0;32m'void () noexcept'[0m default trivial
[0;34m| | `-[0m[0;1;35mCompoundStmt[0m[0;33m 0x7ed1488[0m <[0;33mcol:23[0m>
[0;34m| |-[0m[0;1;32mCXXDestructorDecl[0m[0;33m 0x7ea16d8[0m <[0;33mline:5:5[0m, [0;33mcol:17[0m> [0;33mcol:5[0m used[0;1;36m ~myClass[0m [0;32m'void () noexcept'[0m
[0;34m| | `-[0m[0;1;35mCompoundStmt[0m[0;33m 0x7ea1b88[0m <[0;33mcol:16[0m, [0;33mcol:17[0m>
[0;34m| |-[0m[0;1;32mCXXMethodDecl[0m[0;33m 0x7ea1858[0m <[0;33mline:7:5[0m, [0;33mcol:27[0m> [0;33mcol:10[0m used[0;1;36m myMehtod1[0m [0;32m'void ()'[0m
[0;34m| | `-[0m[0;1;35mCompoundStmt[0m[0;33m 0x7ea1b98[0m <[0;33mcol:26[0m, [0;33mcol:27[0m>
[0;34m| |-[0m[0;1;32mCXXMethodDecl[0m[0;33m 0x7ea1990[0m <[0;33mline:8:5[0m, [0;33mcol:27[0m> [0;33mcol:10[0m used[0;1;36m myMehtod2[0m [0;32m'void ()'[0m
[0;34m| | `-[0m[0;1;35mCompoundStmt[0m[0;33m 0x7ea1ba8[0m <[0;33mcol:26[0m, [0;33mcol:27[0m>
[0;34m| |-[0m[0;1;32mAccessSpecDecl[0m[0;33m 0x7ea1a30[0m <[0;33mline:9:3[0m, [0;33mcol:10[0m> [0;33mcol:3[0m private
[0;34m| |-[0m[0;1;32mFieldDecl[0m[0;33m 0x7ea1a70[0m <[0;33mline:10:5[0m, [0;33mcol:9[0m> [0;33mcol:9[0m[0;1;36m a[0m [0;32m'int'[0m
[0;34m| |-[0m[0;1;32mFieldDecl[0m[0;33m 0x7ea1ad8[0m <[0;33mline:11:5[0m, [0;33mcol:11[0m> [0;33mcol:11[0m[0;1;36m b[0m [0;32m'float'[0m
[0;34m| `-[0m[0;1;32mCXXConstructorDecl[0m[0;33m 0x7ed1308[0m <[0;33mline:2:7[0m> [0;33mcol:7[0m implicit constexpr[0;1;36m myClass[0m [0;32m'void (const myClass &)'[0m inline default trivial noexcept-unevaluated 0x7ed1308
[0;34m| `-[0m[0;1;32mParmVarDecl[0m[0;33m 0x7ed1418[0m <[0;33mcol:7[0m> [0;33mcol:7[0m [0;32m'const myClass &'[0m
[0;34m|-[0m[0;1;32mCXXRecordDecl[0m[0;33m 0x7ea1bb8[0m <[0;33mline:14:1[0m, [0;33mline:17:1[0m> [0;33mline:14:8[0m struct[0;1;36m myStruct[0m definition
[0;34m| |-[0m[0;1;32mDefinitionData[0m empty standard_layout has_user_declared_ctor can_const_default_init
[0;34m| | |-[0m[0;1;32mDefaultConstructor[0m exists non_trivial user_provided defaulted_is_constexpr
[0;34m| | |-[0m[0;1;32mCopyConstructor[0m simple trivial has_const_param needs_implicit implicit_has_const_param
[0;34m| | |-[0m[0;1;32mMoveConstructor[0m
[0;34m| | |-[0m[0;1;32mCopyAssignment[0m trivial has_const_param needs_implicit implicit_has_const_param
[0;34m| | |-[0m[0;1;32mMoveAssignment[0m
[0;34m| | `-[0m[0;1;32mDestructor[0m non_trivial user_declared
[0;34m| |-[0m[0;1;32mCXXRecordDecl[0m[0;33m 0x7ea1cd8[0m <[0;33mcol:1[0m, [0;33mcol:8[0m> [0;33mcol:8[0m implicit referenced struct[0;1;36m myStruct[0m
[0;34m| |-[0m[0;1;32mCXXConstructorDecl[0m[0;33m 0x7ea1dd0[0m <[0;33mline:15:3[0m, [0;33mcol:12[0m> [0;33mcol:3[0m[0;1;36m myStruct[0m [0;32m'void ()'[0m
[0;34m| `-[0m[0;1;32mCXXDestructorDecl[0m[0;33m 0x7ea1ec0[0m <[0;33mline:16:3[0m, [0;33mcol:13[0m> [0;33mcol:3[0m[0;1;36m ~myStruct[0m [0;32m'void ()'[0m noexcept-unevaluated 0x7ea1ec0
[0;34m|-[0m[0;1;32mCXXRecordDecl[0m[0;33m 0x7ea1fa0[0m <[0;33mline:19:1[0m, [0;33mline:22:1[0m> [0;33mline:19:7[0m union[0;1;36m myUnion[0m definition
[0;34m| |-[0m[0;1;32mDefinitionData[0m pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal has_variant_members
[0;34m| | |-[0m[0;1;32mDefaultConstructor[0m exists trivial needs_implicit
[0;34m| | |-[0m[0;1;32mCopyConstructor[0m simple trivial has_const_param needs_implicit implicit_has_const_param
[0;34m| | |-[0m[0;1;32mMoveConstructor[0m exists simple trivial needs_implicit
[0;34m| | |-[0m[0;1;32mCopyAssignment[0m trivial has_const_param needs_implicit implicit_has_const_param
[0;34m| | |-[0m[0;1;32mMoveAssignment[0m exists simple trivial needs_implicit
[0;34m| | `-[0m[0;1;32mDestructor[0m simple irrelevant trivial needs_implicit
[0;34m| |-[0m[0;1;32mCXXRecordDecl[0m[0;33m 0x7ea20b8[0m <[0;33mcol:1[0m, [0;33mcol:7[0m> [0;33mcol:7[0m implicit union[0;1;36m myUnion[0m
[0;34m| |-[0m[0;1;32mFieldDecl[0m[0;33m 0x7ea2160[0m <[0;33mline:20:3[0m, [0;33mcol:7[0m> [0;33mcol:7[0m[0;1;36m a[0m [0;32m'int'[0m
[0;34m| `-[0m[0;1;32mFieldDecl[0m[0;33m 0x7ea21c8[0m <[0;33mline:21:3[0m, [0;33mcol:10[0m> [0;33mcol:10[0m[0;1;36m b[0m [0;32m'double'[0m
[0;34m|-[0m[0;1;32mFunctionDecl[0m[0;33m 0x7ed0dc8[0m <[0;33mline:24:1[0m, [0;33mcol:21[0m> [0;33mcol:6[0m[0;1;36m myFunc1[0m [0;32m'void ()'[0m
[0;34m| `-[0m[0;1;35mCompoundStmt[0m[0;33m 0x7ed0eb0[0m <[0;33mcol:20[0m, [0;33mcol:21[0m>
[0;34m|-[0m[0;1;32mFunctionDecl[0m[0;33m 0x7ed0f58[0m <[0;33mline:25:1[0m, [0;33mcol:21[0m> [0;33mcol:6[0m[0;1;36m myFunc2[0m [0;32m'void ()'[0m
[0;34m| `-[0m[0;1;35mCompoundStmt[0m[0;33m 0x7ed0ff8[0m <[0;33mcol:20[0m, [0;33mcol:21[0m>
[0;34m`-[0m[0;1;32mFunctionDecl[0m[0;33m 0x7ed11b0[0m <[0;33mline:27:1[0m, [0;33mline:36:1[0m> [0;33mline:27:5[0m[0;1;36m main[0m [0;32m'int (int, char **)'[0m
[0;34m |-[0m[0;1;32mParmVarDecl[0m[0;33m 0x7ed1020[0m <[0;33mcol:11[0m, [0;33mcol:15[0m> [0;33mcol:15[0m[0;1;36m argc[0m [0;32m'int'[0m
[0;34m |-[0m[0;1;32mParmVarDecl[0m[0;33m 0x7ed10d0[0m <[0;33mcol:21[0m, [0;33mcol:28[0m> [0;33mcol:28[0m[0;1;36m argv[0m [0;32m'char **'[0m
[0;34m `-[0m[0;1;35mCompoundStmt[0m[0;33m 0x7ed1918[0m <[0;33mcol:34[0m, [0;33mline:36:1[0m>
[0;34m |-[0m[0;1;35mDeclStmt[0m[0;33m 0x7ed14c0[0m <[0;33mline:28:3[0m, [0;33mcol:13[0m>
[0;34m | `-[0m[0;1;32mVarDecl[0m[0;33m 0x7ed1270[0m <[0;33mcol:3[0m, [0;33mcol:11[0m> [0;33mcol:11[0m used[0;1;36m mc[0m [0;32m'myClass'[0m callinit destroyed
[0;34m | `-[0m[0;1;35mCXXConstructExpr[0m[0;33m 0x7ed1498[0m <[0;33mcol:11[0m> [0;32m'myClass'[0m[0;36m[0m[0;36m[0m [0;32m'void () noexcept'[0m
[0;34m |-[0m[0;1;35mCXXMemberCallExpr[0m[0;33m 0x7ed1528[0m <[0;33mline:29:3[0m, [0;33mcol:16[0m> [0;32m'void'[0m[0;36m[0m[0;36m[0m
[0;34m | `-[0m[0;1;35mMemberExpr[0m[0;33m 0x7ed14f8[0m <[0;33mcol:3[0m, [0;33mcol:6[0m> [0;32m'<bound member function type>'[0m[0;36m[0m[0;36m[0m .myMehtod1[0;33m 0x7ea1858[0m
[0;34m | `-[0m[0;1;35mDeclRefExpr[0m[0;33m 0x7ed14d8[0m <[0;33mcol:3[0m> [0;32m'myClass'[0m[0;36m lvalue[0m[0;36m[0m [0;1;32mVar[0m[0;33m 0x7ed1270[0m[0;1;36m 'mc'[0m [0;32m'myClass'[0m
[0;34m |-[0m[0;1;35mCXXMemberCallExpr[0m[0;33m 0x7ed1598[0m <[0;33mline:30:3[0m, [0;33mcol:16[0m> [0;32m'void'[0m[0;36m[0m[0;36m[0m
[0;34m | `-[0m[0;1;35mMemberExpr[0m[0;33m 0x7ed1568[0m <[0;33mcol:3[0m, [0;33mcol:6[0m> [0;32m'<bound member function type>'[0m[0;36m[0m[0;36m[0m .myMehtod2[0;33m 0x7ea1990[0m
[0;34m | `-[0m[0;1;35mDeclRefExpr[0m[0;33m 0x7ed1548[0m <[0;33mcol:3[0m> [0;32m'myClass'[0m[0;36m lvalue[0m[0;36m[0m [0;1;32mVar[0m[0;33m 0x7ed1270[0m[0;1;36m 'mc'[0m [0;32m'myClass'[0m
[0;34m |-[0m[0;1;35mDeclStmt[0m[0;33m 0x7ed1638[0m <[0;33mline:31:3[0m, [0;33mcol:8[0m>
[0;34m | `-[0m[0;1;32mVarDecl[0m[0;33m 0x7ed15d0[0m <[0;33mcol:3[0m, [0;33mcol:7[0m> [0;33mcol:7[0m used[0;1;36m a[0m [0;32m'int'[0m
[0;34m |-[0m[0;1;35mDeclStmt[0m[0;33m 0x7ed16d0[0m <[0;33mline:32:3[0m, [0;33mcol:10[0m>
[0;34m | `-[0m[0;1;32mVarDecl[0m[0;33m 0x7ed1668[0m <[0;33mcol:3[0m, [0;33mcol:9[0m> [0;33mcol:9[0m[0;1;36m b[0m [0;32m'float'[0m
[0;34m |-[0m[0;1;35mDeclStmt[0m[0;33m 0x7ed1800[0m <[0;33mline:33:3[0m, [0;33mcol:10[0m>
[0;34m | |-[0m[0;1;32mVarDecl[0m[0;33m 0x7ed1700[0m <[0;33mcol:3[0m, [0;33mcol:7[0m> [0;33mcol:7[0m used[0;1;36m c[0m [0;32m'int'[0m
[0;34m | `-[0m[0;1;32mVarDecl[0m[0;33m 0x7ed1780[0m <[0;33mcol:3[0m, [0;33mcol:9[0m> [0;33mcol:9[0m used[0;1;36m d[0m [0;32m'int'[0m
[0;34m |-[0m[0;1;35mBinaryOperator[0m[0;33m 0x7ed18c8[0m <[0;33mline:34:3[0m, [0;33mcol:9[0m> [0;32m'int'[0m[0;36m lvalue[0m[0;36m[0m '='
[0;34m | |-[0m[0;1;35mDeclRefExpr[0m[0;33m 0x7ed1818[0m <[0;33mcol:3[0m> [0;32m'int'[0m[0;36m lvalue[0m[0;36m[0m [0;1;32mVar[0m[0;33m 0x7ed15d0[0m[0;1;36m 'a'[0m [0;32m'int'[0m
[0;34m | `-[0m[0;1;35mBinaryOperator[0m[0;33m 0x7ed18a8[0m <[0;33mcol:7[0m, [0;33mcol:9[0m> [0;32m'int'[0m[0;36m[0m[0;36m[0m '+'
[0;34m | |-[0m[0;1;35mImplicitCastExpr[0m[0;33m 0x7ed1878[0m <[0;33mcol:7[0m> [0;32m'int'[0m[0;36m[0m[0;36m[0m <[0;31mLValueToRValue[0m>
[0;34m | | `-[0m[0;1;35mDeclRefExpr[0m[0;33m 0x7ed1838[0m <[0;33mcol:7[0m> [0;32m'int'[0m[0;36m lvalue[0m[0;36m[0m [0;1;32mVar[0m[0;33m 0x7ed1700[0m[0;1;36m 'c'[0m [0;32m'int'[0m
[0;34m | `-[0m[0;1;35mImplicitCastExpr[0m[0;33m 0x7ed1890[0m <[0;33mcol:9[0m> [0;32m'int'[0m[0;36m[0m[0;36m[0m <[0;31mLValueToRValue[0m>
[0;34m | `-[0m[0;1;35mDeclRefExpr[0m[0;33m 0x7ed1858[0m <[0;33mcol:9[0m> [0;32m'int'[0m[0;36m lvalue[0m[0;36m[0m [0;1;32mVar[0m[0;33m 0x7ed1780[0m[0;1;36m 'd'[0m [0;32m'int'[0m
[0;34m `-[0m[0;1;35mReturnStmt[0m[0;33m 0x7ed1908[0m <[0;33mline:35:3[0m, [0;33mcol:10[0m>
[0;34m `-[0m[0;1;35mIntegerLiteral[0m[0;33m 0x7ed18e8[0m <[0;33mcol:10[0m> [0;32m'int'[0m[0;36m[0m[0;36m[0m[0;1;36m 0[0m
|