[libc++] Always define a key function for std::bad_function_call in the dylib
However, whether applications rely on the std::bad_function_call vtable
being in the dylib is still controlled by the ABI macro, since changing
that would be an ABI break.
Also separate preprocessor definitions for whether to use a key function
and whether to use a `bad_function_call`-specific `what` message
(`what` message is mandated by [LWG2233](http://wg21.link/LWG2233)).
Differential Revision: https://reviews.llvm.org/D92397
NOKEYCHECK=True
GitOrigin-RevId: 434dc0a5bcae50e87458e893ae5469619a35839e
diff --git a/src/functional.cpp b/src/functional.cpp
index cc5f43a..fbc6200 100644
--- a/src/functional.cpp
+++ b/src/functional.cpp
@@ -14,7 +14,9 @@
bad_function_call::~bad_function_call() noexcept
{
}
+#endif
+#ifdef _LIBCPP_ABI_BAD_FUNCTION_CALL_GOOD_WHAT_MESSAGE
const char*
bad_function_call::what() const noexcept
{