On Jul 28, 2011, at 1:23 AM, Sebastian Redl wrote:

> On 27.07.2011 01:18, Douglas Gregor wrote:
>> Author: dgregor
>> Date: Tue Jul 26 18:18:30 2011
>> New Revision: 136180
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=136180&view=rev
>> Log:
>> Disable the optimization that skips emission of complete, non-virtual
>> destructors of abstract classes. It's undefined behavior to actually
>> call the destructor (e.g., via delete), but the presence of code that
>> calls this destructor doesn't make the program
>> ill-formed. Fixes<rdar://problem/9819242>.
>> 
> Can't we just replace the call with a trap instruction?

Not without aggressively breaking code that actually works perfectly
reasonably.  I'm pretty skeptical of strictly enforcing undefined
behavior when there's only one reasonable action for the compiler
and it has a substantial chance of being fully correct.

John.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to