[libcxx] r196411 - Give all members of exception types default visibility. Lack of this is causing some illegal code relocations rare and hard to reproduce cases.
Rafael EspĂndola via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 1 08:21:02 PST 2016
>> Yes, that is what I mean. It is odd that -frtti changes us from "this
>> is not available anywhere, use linkonce_odr" to "it is available
>> elsewhere, use an external declaration".
>
> Yes, I agree, it's weird (although the transition is in the other
> direction, really, since there's no such flag as -frtti, just -fno-rtti).
> -fexceptions -fno-rtti is a weird combination to begin with though.
I got curious and decided to reduce it. What I got was:
class foo {
virtual void bar();
};
struct zed : public foo {};
int f() { throw zed(); }
Without -fno-rtti _ZTI3foo is external. With -fno-rtti it is
linkonce_odr. It looks like -fno-rtti disables some key function logic
in both gcc and clang.
Cheers,
Rafael
More information about the cfe-commits
mailing list