<div class="gmail_quote">On Wed, Dec 21, 2011 at 3:51 PM, Ted Kremenek <span dir="ltr"><<a href="mailto:kremenek@apple.com">kremenek@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks John.  I discovered some of the issues by looking at the generated IR; looking at CodeGen was my next planned step.<br></blockquote><div><br></div><div>This again makes me wish that we could begin working to actually implement CodeGen in terms of the CFG so that we both share some of the burden of implementing this logic, and more importantly can share in the testing of the logic. Anyways, that's still more invasive, so I just wanted to keep people thinking about it...</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br>
Ted<br>
<div class="HOEnZb"><div class="h5"><br>
On Dec 21, 2011, at 3:42 PM, John McCall wrote:<br>
<br>
> On Dec 21, 2011, at 2:51 PM, Ted Kremenek wrote:<br>
>> Brief update: I have looked at this, and it turns out to be a bit more complicated then I anticipated.  I discovered through investigation that the way we currently model '&&' and '||' in the CFG does not properly model C++ destructors at all, and fixing that may require changing some fairly pervasive invariants.  I think we need to do this, but it will take a bit longer than I originally anticipated…<br>

><br>
> Incidentally, this kind of conditional evaluation comes up in four places<br>
> in the language:<br>
>  - the ternary operator ?:, in both its variants,<br>
>  - the binary operator &&,<br>
>  - the binary operator ||, and<br>
>  - 'new' expressions that call a operator new declared throw()/noexcept,<br>
>    where the initializer is not evaluated if the result of the call is null.<br>
><br>
> Grepping CodeGen for ConditionalEvaluation is a good way to find<br>
> these places, albeit with some redundancy between the different<br>
> code generation patterns.<br>
><br>
> John.<br>
<br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br>