[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