История изменений
Исправление fluorite, (текущая версия) :
clang -Xclang -ast-dump main.c
TranslationUnitDecl 0x2199f98 <<invalid sloc>> <invalid sloc>
|-TypedefDecl 0x219a858 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128'
| `-BuiltinType 0x219a530 '__int128'
|-TypedefDecl 0x219a8c8 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128'
| `-BuiltinType 0x219a550 'unsigned __int128'
|-TypedefDecl 0x219abd0 <<invalid sloc>> <invalid sloc> implicit __NSConstantString 'struct __NSConstantString_tag'
| `-RecordType 0x219a9a0 'struct __NSConstantString_tag'
| `-Record 0x219a920 '__NSConstantString_tag'
|-TypedefDecl 0x219ac78 <<invalid sloc>> <invalid sloc> implicit __builtin_ms_va_list 'char *'
| `-PointerType 0x219ac30 'char *'
| `-BuiltinType 0x219a030 'char'
|-TypedefDecl 0x21d9830 <<invalid sloc>> <invalid sloc> implicit __builtin_va_list 'struct __va_list_tag [1]'
| `-ConstantArrayType 0x219af10 'struct __va_list_tag [1]' 1
| `-RecordType 0x219ad50 'struct __va_list_tag'
| `-Record 0x219acd0 '__va_list_tag'
`-FunctionDecl 0x21d98e8 <main.c:1:1, line:5:1> line:1:5 main 'int ()'
`-CompoundStmt 0x21d9ba0 <col:12, line:5:1>
|-DeclStmt 0x21d9a50 <line:2:3, col:8>
| `-VarDecl 0x21d99e8 <col:3, col:7> col:7 used a 'int'
|-DeclStmt 0x21d9ae8 <line:3:3, col:8>
| `-VarDecl 0x21d9a80 <col:3, col:7> col:7 used b 'int'
`-ReturnStmt 0x21d9b90 <line:4:3, col:14>
`-BinaryOperator 0x21d9b70 <col:10, col:14> 'int' '*'
|-ImplicitCastExpr 0x21d9b40 <col:10> 'int' <LValueToRValue>
| `-DeclRefExpr 0x21d9b00 <col:10> 'int' lvalue Var 0x21d99e8 'a' 'int'
`-ImplicitCastExpr 0x21d9b58 <col:14> 'int' <LValueToRValue>
`-DeclRefExpr 0x21d9b20 <col:14> 'int' lvalue Var 0x21d9a80 'b' 'int'
$ cat main.c
int main() {
int a;
int b;
return a * b;
}
Исходная версия fluorite, :
TranslationUnitDecl 0x2199f98 <<invalid sloc>> <invalid sloc>
|-TypedefDecl 0x219a858 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128'
| `-BuiltinType 0x219a530 '__int128'
|-TypedefDecl 0x219a8c8 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128'
| `-BuiltinType 0x219a550 'unsigned __int128'
|-TypedefDecl 0x219abd0 <<invalid sloc>> <invalid sloc> implicit __NSConstantString 'struct __NSConstantString_tag'
| `-RecordType 0x219a9a0 'struct __NSConstantString_tag'
| `-Record 0x219a920 '__NSConstantString_tag'
|-TypedefDecl 0x219ac78 <<invalid sloc>> <invalid sloc> implicit __builtin_ms_va_list 'char *'
| `-PointerType 0x219ac30 'char *'
| `-BuiltinType 0x219a030 'char'
|-TypedefDecl 0x21d9830 <<invalid sloc>> <invalid sloc> implicit __builtin_va_list 'struct __va_list_tag [1]'
| `-ConstantArrayType 0x219af10 'struct __va_list_tag [1]' 1
| `-RecordType 0x219ad50 'struct __va_list_tag'
| `-Record 0x219acd0 '__va_list_tag'
`-FunctionDecl 0x21d98e8 <main.c:1:1, line:5:1> line:1:5 main 'int ()'
`-CompoundStmt 0x21d9ba0 <col:12, line:5:1>
|-DeclStmt 0x21d9a50 <line:2:3, col:8>
| `-VarDecl 0x21d99e8 <col:3, col:7> col:7 used a 'int'
|-DeclStmt 0x21d9ae8 <line:3:3, col:8>
| `-VarDecl 0x21d9a80 <col:3, col:7> col:7 used b 'int'
`-ReturnStmt 0x21d9b90 <line:4:3, col:14>
`-BinaryOperator 0x21d9b70 <col:10, col:14> 'int' '*'
|-ImplicitCastExpr 0x21d9b40 <col:10> 'int' <LValueToRValue>
| `-DeclRefExpr 0x21d9b00 <col:10> 'int' lvalue Var 0x21d99e8 'a' 'int'
`-ImplicitCastExpr 0x21d9b58 <col:14> 'int' <LValueToRValue>
`-DeclRefExpr 0x21d9b20 <col:14> 'int' lvalue Var 0x21d9a80 'b' 'int'
$ cat main.c
int main() {
int a;
int b;
return a * b;
}