On Tue, Aug 6, 2019 at 11:15 AM Monalisa Rout via cfe-commits
<cfe-commits@lists.llvm.org> wrote:
>
> Hello,
> While dumping the AST for For loop, Why do I get  <<<NULL>>> ??
>
> Source code:
> void func()
> {
> for (int i = 0; i < 5; i++)
> break;
> }
>
> AST
>
> FunctionDecl 0x4a4ac10 
> <D:\Data\Rout\ASTJSONProject\ASTJSONProject\typeof.c:2:1, line:6:1> line:2:6 
> func 'void ()'
> `-CompoundStmt 0x4a4ae1c <line:3:1, line:6:1>
>   `-ForStmt 0x4a4adf8 <line:4:2, line:5:3>
>     |-DeclStmt 0x4a4ad38 <line:4:7, col:16>
>     | `-VarDecl 0x4a4acd0 <col:7, col:15> col:11 used i 'int' cinit
>     |   `-IntegerLiteral 0x4a4ad10 <col:15> 'int' 0
>     |-<<<NULL>>>
>     |-BinaryOperator 0x4a4ada8 <col:18, col:22> 'int' '<'
>     | |-ImplicitCastExpr 0x4a4ad98 <col:18> 'int' <LValueToRValue>
>     | | `-DeclRefExpr 0x4a4ad50 <col:18> 'int' lvalue Var 0x4a4acd0 'i' 'int'
>     | `-IntegerLiteral 0x4a4ad70 <col:22> 'int' 5
>     |-UnaryOperator 0x4a4ade0 <col:25, col:26> 'int' postfix '++'
>     | `-DeclRefExpr 0x4a4adc0 <col:25> 'int' lvalue Var 0x4a4acd0 'i' 'int'
>     `-BreakStmt 0x4a4adf0 <line:5:3>

The AST dumps child nodes by calling children() on a given AST node.
The ForStmt node always has five child nodes, which are (in order):
init statement, condition variable, condition, increment, and body.
Some of those may be NULL depending on the format of the for loop
(your for loop example has no condition variable, for instance).

HTH!

~Aaron

>
> Regards,
> Mona
> _______________________________________________
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to