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
diff --git a/include/memory b/include/memory
index f80d699..4e1f704 100644
--- a/include/memory
+++ b/include/memory
@@ -3629,10 +3629,13 @@
     long use_count() const _NOEXCEPT {return __shared_count::use_count();}
     __shared_weak_count* lock() _NOEXCEPT;
 
-    // purposefully not protected with #ifndef _LIBCPP_NO_RTTI because doing so
-    //  breaks ABI for those clients who need to compile their projects with
-    //    -fno-rtti and yet link against a libc++.dylib compiled without -fno-rtti.
+    // Define the function out only if we build static libc++ without RTTI.
+    // 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.
+#if !defined(_LIBCPP_NO_RTTI) || !defined(_LIBCPP_BUILD_STATIC)
     virtual const void* __get_deleter(const type_info&) const _NOEXCEPT;
+#endif
 private:
     virtual void __on_zero_shared_weak() _NOEXCEPT = 0;
 };