ast-print of functions


I am trying to understand how the StmtPrinter works. Assuming I have the following code:

int compute (int a)

which function in clang will print the function name – “compute”? Or, what type of stmt the function corresponds to?


You won't find it in StmtPrinter, because a function is a declaration (not a statement). The DeclPrinter handles the printing of all kinds of declarations, including functions, which are represented by a FunctionDecl.

Declarations can occur within statements, e.g., DeclStmt is a statement that contains one or more declarations. However, in your example, the function occurs at the top level, stored within the translation unit.

  - Doug