[llvm-commits] [llvm-gcc-4.2] r49171 - in /llvm-gcc-4.2/trunk/gcc: llvm-convert.cpp llvm-types.cpp

Eric Christopher echristo at apple.com
Mon Apr 7 10:36:06 PDT 2008


>>
>> I think there is a slight difference. There's the "this file doesn't
>> throw
>> exceptions" and "this file doesn't throw or propagate exceptions".
>
> it's a bit different: we're discussing what you should get if a file
> is compiled with -fno-exceptions, which is a gcc flag saying that this
> file doesn't need to support exceptions unwinding through it (it also
> means that nothing in the file throws or catches exceptions).
>

I agree. This is why some targets in gcc specify that the unwind tables
should exist even if you compile with -fno-exceptions. Look for the
-fasynchronus-unwind-tables code in gcc.

>> I
>> think
>> Dale is doing the first, though I'd like to personally have files  
>> able
>> to unwind across even if nothing in the file throws.
>
> If a function does not throw exceptions and the compiler can prove  
> that
> functions it calls don't throw exceptions either (or, rather, any  
> exceptions
> they throw don't unwind out of the function), then the compiler can  
> discard
> some exception handling info needed to unwind out of it because that  
> info
> is pointless.  But that's a different issue to what we're discussing  
> here.

Agreed, but that's not what I'm saying either. :)

-eric



More information about the llvm-commits mailing list