<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On May 3, 2013, at 11:16 AM, Jordan Rose <<a href="mailto:jordan_rose@apple.com">jordan_rose@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">How about this one? Is the inner init list really creating a Point which is then<span class="Apple-converted-space"> </span><i>copied</i> by the CompoundLiteralExpr?</div></blockquote><div><br></div></div><div><br><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><div>struct Point {</div><div><span class="Apple-tab-span" style="white-space: pre;">      </span>int x, y;</div><div><span class="Apple-tab-span" style="white-space: pre;">  </span>~Point();</div><div>};</div><div><br></div><div>void test() {</div><div><span class="Apple-tab-span" style="white-space: pre;">    </span>((Point){1,2});</div><div>}</div></div><div><br></div><div><div>`-FunctionDecl 0x7f9558860720 <line:6:1, line:8:1> test 'void (void)'</div><div>  `-CompoundStmt 0x7f9558860990 <line:6:13, line:8:1></div><div>    `-ExprWithCleanups 0x7f9558860978 <line:7:2, col:15> 'struct Point'</div><div>      `-ParenExpr 0x7f9558860958 <col:2, col:15> 'struct Point'</div><div><b>        `-CXXBindTemporaryExpr 0x7f9558860938 <col:3, col:14> 'struct Point' (CXXTemporary 0x7f9558860930)</b></div><div>          `-CompoundLiteralExpr 0x7f9558860908 <col:3, col:14> 'struct Point'</div><div><b>            `-CXXBindTemporaryExpr 0x7f95588608e8 <col:10, col:14> 'struct Point' (CXXTemporary 0x7f95588608e0)</b></div><div>              `-InitListExpr 0x7f9558860860 <col:10, col:14> 'struct Point'</div><div>                |-IntegerLiteral 0x7f95588607d0 <col:11> 'int' 1</div><div>                `-IntegerLiteral 0x7f95588607f0 <col:13> 'int' 2</div></div><div><br></div><div>(This is the same AST whether in C++03 or C++11.)</div></div></blockquote><div><br></div><div>Okay, that's weird. There should just be one temporary there.</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre;">     </span>- Doug</div><div><br></div></div></body></html>