[cfe-dev] How can I turn on the "dump" printing of the AST?
Martin C. Martin
martin at martincmartin.com
Thu Mar 25 04:34:57 PDT 2010
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