<div dir="ltr">I believe the parent map that powers getParents is not populated by default (it's not used by Clang proper - so it doesn't want to pay that cost) - not sure where/when/how you call to populate it - but hopefully that gives you some hints for what to look for.</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Oct 23, 2018 at 3:49 AM Kevin Choi via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi clang developers,<br>
<br>
I wasn't sure if this was the relevant channel to ask this, and I <br>
apologize if so.<br>
<br>
I've hit a puzzle with an out-of-tree build based on 6.0.0 and was <br>
wondering if anyone could share their wisdom on it.<br>
ASTContext::getParents seems to be returning an empty list in a <br>
particular case:<br>
   Run on ArraySubscriptExpr node looking for Stmt parents.<br>
<br>
I have four ArraySubscriptExprs in my AST dump, the faulty one being:<br>
<br>
|-FunctionDecl 0x6190f58 <line:33:1, line:35:1> line:33:5 used fib 'int <br>
(int)'$<br>
| |-ParmVarDecl 0x6190ec8 <col:9, col:13> col:13 used n 'int'$<br>
| `-CompoundStmt 0x61915d8 <col:16, line:35:1>$<br>
|   `-ReturnStmt 0x6191518 <line:34:3, col:13>$<br>
|     `-ImplicitCastExpr 0x6191460 <col:10, col:13> 'int' <LValueToRValue>$<br>
|       `-ArraySubscriptExpr 0x6191390 <col:10, col:13> 'int' lvalue$<br>
|         |-ImplicitCastExpr 0x6191220 <col:10> 'int *' <br>
<ArrayToPointerDecay>$<br>
|         | `-DeclRefExpr 0x6191080 <col:10> 'int [16]' lvalue Var <br>
0x618c780 'b' 'int [16]'$<br>
|         `-ImplicitCastExpr 0x61912d8 <col:12> 'int' <LValueToRValue>$<br>
|           `-DeclRefExpr 0x6191150 <col:12> 'int' lvalue ParmVar <br>
0x6190ec8 'n' 'int'$<br>
<br>
In this case, getParents returns empty list even though ImplicitCastExpr <br>
is clearly a parent and is a Stmt. My modification simply calls "const <br>
auto Parents = getContext().getParents<Stmt>(ERef);" in <br>
EmitArraySubscriptExpr. Has anyone run into a similar problem before?<br>
<br>
Best,<br>
<br>
Kevin<br>
<br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>