aboutsummaryrefslogtreecommitdiff
path: root/libcxx/src/stdexcept.cpp
diff options
context:
space:
mode:
authorNikolas Klauser <nikolasklauser@berlin.de>2024-10-12 09:49:52 +0200
committerGitHub <noreply@github.com>2024-10-12 09:49:52 +0200
commitba87515fea90b5d55836a8e3be63a7e683ce299d (patch)
tree25b36e09d01ff31f453e6a8141629a52a7f673bb /libcxx/src/stdexcept.cpp
parentdbd197118db597970a5a9c5688c5e0bb01948ebb (diff)
downloadllvm-ba87515fea90b5d55836a8e3be63a7e683ce299d.zip
llvm-ba87515fea90b5d55836a8e3be63a7e683ce299d.tar.gz
llvm-ba87515fea90b5d55836a8e3be63a7e683ce299d.tar.bz2
[libc++][RFC] Always define internal feature test macros (#89178)
Currently, the library-internal feature test macros are only defined if the feature is not available, and always have the prefix `_LIBCPP_HAS_NO_`. This patch changes that, so that they are always defined and have the prefix `_LIBCPP_HAS_` instead. This changes the canonical use of these macros to `#if _LIBCPP_HAS_FEATURE`, which means that using an undefined macro (e.g. due to a missing include) is diagnosed now. While this is rather unlikely currently, a similar change in `<__configuration/availability.h>` caught a few bugs. This also improves readability, since it removes the double-negation of `#ifndef _LIBCPP_HAS_NO_FEATURE`. The current patch only touches the macros defined in `<__config>`. If people are happy with this approach, I'll make a follow-up PR to also change the macros defined in `<__config_site>`.
Diffstat (limited to 'libcxx/src/stdexcept.cpp')
-rw-r--r--libcxx/src/stdexcept.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxx/src/stdexcept.cpp b/libcxx/src/stdexcept.cpp
index 134d28e..0ee438b 100644
--- a/libcxx/src/stdexcept.cpp
+++ b/libcxx/src/stdexcept.cpp
@@ -20,7 +20,7 @@
_LIBCPP_BEGIN_NAMESPACE_STD
void __throw_runtime_error(const char* msg) {
-#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
+#if _LIBCPP_HAS_EXCEPTIONS
throw runtime_error(msg);
#else
_LIBCPP_VERBOSE_ABORT("runtime_error was thrown in -fno-exceptions mode with message \"%s\"", msg);