You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[libc++] Introduce a new attribute keyword for Clang improves compatibility with Mingw-GCC
The new ABI annotation keyword _LIBCPP_HIDE_FROM_ABI_MINGW_OR_AFTER_V1
is introduced.
In MinGW environment, Clang handles dllexport attribute of internal
class that defined in class template in different way from GCC.
This incompatibility should be fixed but breaks ABI of libc++, so
introduce a new keyword to keep ABI in MinGW environment with
old and patched Clang and to stay ABI compatible on other platforms.
This attribute is attached only for basic_ostream::sentry::sentry,
basic_ostream::sentry::~sentry and basic_istream::sentry::sentry.
Other entities won't be affected by patching Clang so doesn't need
to be annotate.
At a time to introduce a new (static or non-static) member function
is added to an inner class within a class as a non-template, all of
such member functions needs to be attached _LIBCPP_HIDE_FROM_ABI
Otherwise, that member functions contained in DLL will be
inaccessible on MinGW environment.
0 commit comments