Author: ericwf Date: Wed Sep 14 18:52:01 2016 New Revision: 281562 URL: http://llvm.org/viewvc/llvm-project?rev=281562&view=rev Log: Revert r280944 - Added 'inline' attribute to basic_string's destructor
This patch causes a couple of issues: 1) It triggers http://llvm.org/PR30341. Although the bug is not truly a libc++ bug it breaks the LLVM build using libc++. Reverting this patch is only a temporary workaround until Clang is fixed. 2) It adds yet another ABI incompatibility when libc++.so is compiled with GCC. Specifically GCC doesn't ignore the _LIBCPP_INLINE_VISIBILITY on the out-of-line definition when compiling the dylib. This causes the externally instantiated ~basic_string symbol to have hidden visibility. This patch should be recommitted after addressing (1) and (2). (2) can be fixed by adding _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY which is defined as __attribute__((visibility("default"), always_inline)) as opposed to _LIBCPP_INLINE_VISIBILITY which makes the symbol hidden. Modified: libcxx/trunk/include/string Modified: libcxx/trunk/include/string URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?rev=281562&r1=281561&r2=281562&view=diff ============================================================================== --- libcxx/trunk/include/string (original) +++ libcxx/trunk/include/string Wed Sep 14 18:52:01 2016 @@ -1798,7 +1798,6 @@ basic_string<_CharT, _Traits, _Allocator #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS template <class _CharT, class _Traits, class _Allocator> -inline _LIBCPP_INLINE_VISIBILITY basic_string<_CharT, _Traits, _Allocator>::~basic_string() { #if _LIBCPP_DEBUG_LEVEL >= 2 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits