<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Nov 15, 2010, at 12:10 AM, Zhongxing Xu wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><blockquote class="gmail_quote" style="margin-top: 0pt; margin-right: 0pt; margin-bottom: 0pt; margin-left: 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex; "><div class="gmail_quote"><div>I think that we should leave destructors for temporaries as an option. Also I think we shouldn't optimize elidable constructors and destructors they impact in the CFG, because this will force clients to also account for those optimizations. This will complicate things without any gain for analysis outcome.</div></div></blockquote><div><br>To clarify, I didn't optimize away elidable constructors. They are just not appended as block-level expr. They still exist in the CFG.<span class="Apple-converted-space"> </span><br></div></span><br class="Apple-interchange-newline"></blockquote></div><br><div>I haven't had time to look at these set of patches yet, but one high-level comment is that I thought a key design point was to leave all destructor calls as block-level exprs.  That way we can associate call enter/return edges with them if we choose to analyze them via inlining.</div></body></html>