<div class="gmail_quote"><div><div id=":1cv" class="ArwC7c ckChnd"><Not certain if we need E->IngoreParens()->getInit().</div><br>Perhaps. We'd better have a consistent Parenthesis handle scheme. The current one looks ad hoc (or I haven't get it from the code?).<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
+      NodeSet Tmp;<br>
+      Visit(Init, Pred, Tmp);<br>
+<br>
+      // We do not allow state splitting during Initializer visiting.<br>
+      assert(Tmp.size() == 1);<br>
<br>
I'm fine with this for an initial patch (keeps things simple), but this is a bogus limitation that is easily broken.  For example, initializers that contain function calls may easily have state-splitting.  We allow state-splitting when processing CallExprs and ObjCMessageExprs; this is no different.  The difference here is that initializer lists might be very long, so using recursive calls to "Aux" functions probably isn't a good idea.  We can manually do this recursion by maintaining a stack of NodeSets (ala llvm::SmallVector?) and processing it like a worklist.  This is a little complicated, so it should go in a second patch.</blockquote>
<div><br>Yeah, a worklist is better than recursion.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
+<br>
+  if (T->isStructureType()) {<br>
+    // FIXME: to be implemented.<br>
+    MakeNode(Dst, E, Pred, state);<br>
+    return;<br>
+  }<br>
<br>
Isn't the case for structs exactly the same as for arrays?  I don't see anything in the above code that is specific to arrays.</blockquote><div><br>Should be yes.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
+<br>
+  if (Loc::IsLocType(T) || T->isIntegerType()) {<br>
+    // FIXME: to be implemented.<br>
+    MakeNode(Dst, E, Pred, state);<br>
+    return;<br>
+  }<br>
<br>
Is this possible?  Can InitListExpr have one of these types?</blockquote><div><br>There is one example in test/Analysis/stack-addr-ps.c. In the last function.<br> </div><br></div>