[cfe-commits] [libcxxabi] r147148 - in /libcxxabi/trunk: CREDITS.TXT src/cxa_exception.cpp

Howard Hinnant hhinnant at apple.com
Thu Dec 22 21:14:31 PST 2011


On Dec 22, 2011, at 7:36 PM, John McCall wrote:

> On Dec 22, 2011, at 4:10 PM, Dave Zarzycki wrote:
>> Howard,
>> 
>> Does the ABI require that it be prefixed with __gxx_*?
> 
> Not at the Itanium ABI level, but at the level of of drop-in compatibility
> with libstdc++, yes.  GCC and Clang emit code with references to
> exactly this symbol.  The "gxx" is best interpreted as "personality that
> consumes LSDA information in the v0 format output by G++".
> 
> John.

Thanks John, yes.  I found this by scanning the clang sources.  But this brings up an additional question:

I also found __gxx_personality_sj0 in the clang sources.  Does this also need to be provided?  And if so, how does it differ from __gxx_personality_v0?

For that matter, clang has all of these:

const EHPersonality EHPersonality::GNU_C("__gcc_personality_v0");
const EHPersonality EHPersonality::GNU_C_SJLJ("__gcc_personality_sj0");
const EHPersonality EHPersonality::NeXT_ObjC("__objc_personality_v0");
const EHPersonality EHPersonality::GNU_CPlusPlus("__gxx_personality_v0");
const EHPersonality EHPersonality::GNU_CPlusPlus_SJLJ("__gxx_personality_sj0");
const EHPersonality EHPersonality::GNU_ObjC("__gnu_objc_personality_v0",
                                            "objc_exception_throw");
const EHPersonality EHPersonality::GNU_ObjCXX("__gnustep_objcxx_personality_v0");

And I don't know how to handle all of these, or even know if I should try.

Howard




More information about the cfe-commits mailing list