[cfe-dev] How can I turn on the "dump" printing of the AST?

Nuno Lopes nunoplopes at sapo.pt
Thu Mar 25 05:23:11 PDT 2010


clang -cc1 -ast-dump file.c

Nuno

----- Original Message ----- 
From: "Martin C. Martin" <martin at martincmartin.com>
To: "cfe-dev" <cfe-dev at cs.uiuc.edu>
Sent: Thursday, March 25, 2010 11:34 AM
Subject: [cfe-dev] How can I turn on the "dump" printing of the AST?


> Hi,
> 
> The ASTPrinter has the option to print the addresses and fields of the 
> AST objects, but I can't find a way to invoke this from the command 
> line.  Is there a way?
> 
> When I hack the ASTPrinter source like this:
> 
>      virtual void HandleTranslationUnit(ASTContext &Context) {
>        PrintingPolicy Policy = Context.PrintingPolicy;
> -      Policy.Dump = Dump;
> +      Policy.Dump = true;
>        Context.getTranslationUnitDecl()->print(Out, Policy);
>      }
>    };
> 
> it doesn't print class names & addresses for function declarations, just 
> their bodies, e.g.:
> 
> int foo(int x, int y) {
>         return x + y;
> }
> 
> prints as:
> 
> int foo(int x, int y) (CompoundStmt 0xad6b460 <./t.c:1:23, line:3:1>
>   (ReturnStmt 0xad6afa0 <line:2:2, col:13>
>     (BinaryOperator 0xad717a0 <col:9, col:13> 'int' '+'
>       (DeclRefExpr 0xad71720 <col:9> 'int' ParmVar='x' 0xad5d910)
>       (DeclRefExpr 0xad71760 <col:13> 'int' ParmVar='y' 0xad6c360))))
> 
> Is there a way to get it to print the declarations as well?
> 
> Thanks,
> Martin



More information about the cfe-dev mailing list