[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