[cfe-commits] [PATCH] Utilize the indents in -ast-dump to draw structural information

Richard Trieu rtrieu at google.com
Thu Jan 10 18:42:38 PST 2013


On Thu, Jan 10, 2013 at 6:35 PM, Sean Silva <silvas at purdue.edu> wrote:

> Could you please attach an example of the output? It's hard to comment
> on the format just by looking through the narrow lens of the FileCheck
> assertions.
>
> -- Sean Silva


I can certainly provide an example.

Code:
int main(int argc, char** argv) {
  int x = 5;
  int y = 2;
  return (x * y);
}

Old -ast-dump:
(TranslationUnitDecl 0x5341640 <<invalid sloc>>
  (TypedefDecl 0x5341b80 <<invalid sloc>> __int128_t '__int128')
  (TypedefDecl 0x5341be0 <<invalid sloc>> __uint128_t 'unsigned __int128')
  (TypedefDecl 0x5341fa0 <<invalid sloc>> __builtin_va_list '__va_list_tag
[1]')
  (FunctionDecl 0x53421a0 <simple.cc:1:1, line:5:1> main 'int (int, char
**)'
    (ParmVarDecl 0x5342000 <line:1:10, col:14> argc 'int')
    (ParmVarDecl 0x53420d0 <col:20, col:27> argv 'char **')
    (CompoundStmt 0x536e8a0 <col:33, line:5:1>
      (DeclStmt 0x53422d8 <line:2:3, col:12>
        (VarDecl 0x5342260 <col:3, col:11> x 'int'
          (IntegerLiteral 0x53422b8 <col:11> 'int' 5)))
      (DeclStmt 0x536e7a0 <line:3:3, col:12>
        (VarDecl 0x5342300 <col:3, col:11> y 'int'
          (IntegerLiteral 0x536e780 <col:11> 'int' 2)))
      (ReturnStmt 0x536e880 <line:4:3, col:16>
        (ParenExpr 0x536e860 <col:10, col:16> 'int'
          (BinaryOperator 0x536e838 <col:11, col:15> 'int' '*'
            (ImplicitCastExpr 0x536e808 <col:11> 'int' <LValueToRValue>
              (DeclRefExpr 0x536e7b8 <col:11> 'int' lvalue Var 0x5342260
'x' 'int'))
            (ImplicitCastExpr 0x536e820 <col:15> 'int' <LValueToRValue>
              (DeclRefExpr 0x536e7e0 <col:15> 'int' lvalue Var 0x5342300
'y' 'int'))))))))

New -ast-dump:
(TranslationUnitDecl 0x6784640 <<invalid sloc>>
|-(TypedefDecl 0x6784b80 <<invalid sloc>> __int128_t '__int128')
|-(TypedefDecl 0x6784be0 <<invalid sloc>> __uint128_t 'unsigned __int128')
|-(TypedefDecl 0x6784fa0 <<invalid sloc>> __builtin_va_list '__va_list_tag
[1]')
\-(FunctionDecl 0x67851a0 <simple.cc:1:1, line:5:1> main 'int (int, char
**)'
  |-(ParmVarDecl 0x6785000 <line:1:10, col:14> argc 'int')
  |-(ParmVarDecl 0x67850d0 <col:20, col:27> argv 'char **')
  \-(CompoundStmt 0x67b18a0 <col:33, line:5:1>
    |-(DeclStmt 0x67852d8 <line:2:3, col:12>
    | \-(VarDecl 0x6785260 <col:3, col:11> x 'int'
    |   \-(IntegerLiteral 0x67852b8 <col:11> 'int' 5)))
    |-(DeclStmt 0x67b17a0 <line:3:3, col:12>
    | \-(VarDecl 0x6785300 <col:3, col:11> y 'int'
    |   \-(IntegerLiteral 0x67b1780 <col:11> 'int' 2)))
    \-(ReturnStmt 0x67b1880 <line:4:3, col:16>
      \-(ParenExpr 0x67b1860 <col:10, col:16> 'int'
        \-(BinaryOperator 0x67b1838 <col:11, col:15> 'int' '*'
          |-(ImplicitCastExpr 0x67b1808 <col:11> 'int' <LValueToRValue>
          | \-(DeclRefExpr 0x67b17b8 <col:11> 'int' lvalue Var 0x6785260
'x' 'int'))
          \-(ImplicitCastExpr 0x67b1820 <col:15> 'int' <LValueToRValue>
            \-(DeclRefExpr 0x67b17e0 <col:15> 'int' lvalue Var 0x6785300
'y' 'int'))))))))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130110/c6a646c1/attachment.html>


More information about the cfe-commits mailing list