<br><br><div class="gmail_quote">On Fri, Oct 31, 2008 at 12:27 PM, Ted Kremenek <span dir="ltr"><<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>
On Oct 30, 2008, at 7:56 PM, Zhongxing Xu wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Ted,<br>
<br>
Would visiting the InitList from right to left lead to some bugs? For example:<br>
<br>
int x = 3;<br>
int a[3] = {1, x = 1, 2*x+3};<br>
<br>
At last a should be { 1, 1, 5 }. But visit from right to left results { 1, 1, 9 }<br>
</blockquote>
<br></div>
I don't think the order of evaluation is defined (we should consult the standard).  If there is an explicit control-flow dependency between the subexpressions, we should put that explicitly in the CFG.  In that case visiting the subexpressions from right-to-left or left-to-right won't matter (as the expressions will have already been evaluated).</blockquote>
<div><br>Agree.<br></div></div><br>