avec un compilateur différent : clang -Xclang -ast-dump -fsyntax-only ;
TranslationUnitDecl 0x9bcb300 <<invalid sloc>> <invalid sloc>
|-TypedefDecl 0x9bcb5d0 <<invalid sloc>> <invalid sloc> implicit __builtin_va_list 'char *'
|-FunctionDecl 0x9bcb6c0 <prog.c:1:12> col:12 implicit referenced printf 'int (const char *, ...)' extern
| |-ParmVarDecl 0x9bcb720 <<invalid sloc>> <invalid sloc> 'const char *'
| `-FormatAttr 0x9bcb760 <col:12> Implicit printf 1 2
|-FunctionDecl 0x9bcb7a0 prev 0x9bcb6c0 <col:1, col:56> col:12 used printf 'int (const char *, ...)' extern
| |-ParmVarDecl 0x9bcb630 <col:20, col:43> col:43 __format 'const char *restrict'
| `-FormatAttr 0x9bcb820 <col:12> Inherited printf 1 2
`-FunctionDecl 0x9bcb8c0 <line:5:1, line:10:1> line:5:5 main 'int (void)'
`-CompoundStmt 0x9bcbbf0 <col:15, line:10:1>
|-DeclStmt 0x9bcb980 <line:6:1, col:6>
| `-VarDecl 0x9bcb950 <col:1, col:5> col:5 used i 'int'
|-BinaryOperator 0x9bcb9c0 <line:7:1, col:3> 'int' '='
| |-DeclRefExpr 0x9bcb990 <col:1> 'int' lvalue Var 0x9bcb950 'i' 'int'
| `-IntegerLiteral 0x9bcb9a8 <col:3> 'int' 0
|-ForStmt 0x9bcbba0 <line:8:1, line:4:41>
| |-BinaryOperator 0x9bcba08 <line:8:5, col:7> 'int' '='
| | |-DeclRefExpr 0x9bcb9d8 <col:5> 'int' lvalue Var 0x9bcb950 'i' 'int'
| | `-IntegerLiteral 0x9bcb9f0 <col:7> 'int' 1
| |-<<<NULL>>>
| |-BinaryOperator 0x9bcba60 <col:9, line:2:13> 'int' '<='
| | |-ImplicitCastExpr 0x9bcba50 <line:8:9> 'int' <LValueToRValue>
| | | `-DeclRefExpr 0x9bcba20 <col:9> 'int' lvalue Var 0x9bcb950 'i' 'int'
| | `-IntegerLiteral 0x9bcba38 <line:2:13> 'int' 10
| |-UnaryOperator 0x9bcba90 <line:8:16, col:17> 'int' postfix '++'
| | `-DeclRefExpr 0x9bcba78 <col:16> 'int' lvalue Var 0x9bcb950 'i' 'int'
| `-CallExpr 0x9bcbb48 <line:4:26, col:41> 'int'
| |-ImplicitCastExpr 0x9bcbb38 <col:26> 'int (*)(const char *, ...)' <FunctionToPointerDecay>
| | `-DeclRefExpr 0x9bcbaa4 <col:26> 'int (const char *, ...)' Function 0x9bcb7a0 'printf' 'int (const char *, ...)'
| |-ImplicitCastExpr 0x9bcbb80 <col:33> 'const char *' <BitCast>
| | `-ImplicitCastExpr 0x9bcbb70 <col:33> 'char *' <ArrayToPointerDecay>
| | `-StringLiteral 0x9bcbae0 <col:33> 'char [4]' lvalue "%d\n"
| `-ImplicitCastExpr 0x9bcbb90 <line:8:35> 'int' <LValueToRValue>
| `-DeclRefExpr 0x9bcbb04 <col:35> 'int' lvalue Var 0x9bcb950 'i' 'int'
`-ReturnStmt 0x9bcbbe0 <line:9:1, line:3:18>
`-IntegerLiteral 0x9bcbbc8 <col:18> 'int' 0