Alexey Samsonov: #ifdefs out undefined function in static build of libc++ w/o RTTI.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@176026 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -228,6 +228,10 @@ else()
|
|||||||
list(APPEND LIBCXX_CXX_FEATURE_FLAGS -DNDEBUG)
|
list(APPEND LIBCXX_CXX_FEATURE_FLAGS -DNDEBUG)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
# Static library
|
||||||
|
if (NOT LIBCXX_ENABLE_SHARED)
|
||||||
|
list(APPEND LIBCXX_CXX_FEATURE_FLAGS -D_LIBCPP_BUILD_STATIC)
|
||||||
|
endif()
|
||||||
|
|
||||||
# This is the _ONLY_ place where add_definitions is called.
|
# This is the _ONLY_ place where add_definitions is called.
|
||||||
add_definitions(
|
add_definitions(
|
||||||
|
@@ -3629,10 +3629,13 @@ public:
|
|||||||
long use_count() const _NOEXCEPT {return __shared_count::use_count();}
|
long use_count() const _NOEXCEPT {return __shared_count::use_count();}
|
||||||
__shared_weak_count* lock() _NOEXCEPT;
|
__shared_weak_count* lock() _NOEXCEPT;
|
||||||
|
|
||||||
// purposefully not protected with #ifndef _LIBCPP_NO_RTTI because doing so
|
// Define the function out only if we build static libc++ without RTTI.
|
||||||
// breaks ABI for those clients who need to compile their projects with
|
// Otherwise we may break clients who need to compile their projects with
|
||||||
// -fno-rtti and yet link against a libc++.dylib compiled without -fno-rtti.
|
// -fno-rtti and yet link against a libc++.dylib compiled
|
||||||
|
// without -fno-rtti.
|
||||||
|
#if !defined(_LIBCPP_NO_RTTI) || !defined(_LIBCPP_BUILD_STATIC)
|
||||||
virtual const void* __get_deleter(const type_info&) const _NOEXCEPT;
|
virtual const void* __get_deleter(const type_info&) const _NOEXCEPT;
|
||||||
|
#endif
|
||||||
private:
|
private:
|
||||||
virtual void __on_zero_shared_weak() _NOEXCEPT = 0;
|
virtual void __on_zero_shared_weak() _NOEXCEPT = 0;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user