summaryrefslogtreecommitdiff
path: root/libcxx/modules/std.cppm.in
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/modules/std.cppm.in
parentdbd197118db597970a5a9c5688c5e0bb01948ebb (diff)
[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/modules/std.cppm.in')
-rw-r--r--libcxx/modules/std.cppm.in2
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxx/modules/std.cppm.in b/libcxx/modules/std.cppm.in
index 0575774f6f42..64ed8d4088cc 100644
--- a/libcxx/modules/std.cppm.in
+++ b/libcxx/modules/std.cppm.in
@@ -20,7 +20,7 @@ module;
#include <algorithm>
#include <any>
#include <array>
-#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)
+#if _LIBCPP_HAS_ATOMIC_HEADER
# include <atomic>
#endif
#include <barrier>