summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouis Dionne <ldionne.2@gmail.com>2024-05-01 10:26:38 -0600
committerGitHub <noreply@github.com>2024-05-01 10:26:38 -0600
commita00bbcbe7c7b1d5fb437d530555a6940c0b8d06a (patch)
treeb35848d46f728987351bc508a1019e9022e7a295
parent4cbe7607c75486dd17a048a45dd8c72c3dbf7e62 (diff)
[libc++] Remove _LIBCPP_DISABLE_ADDITIONAL_DIAGNOSTICS (#90512)
I strongly suspect nobody ever used that macro since it wasn't very well known. Furthermore, it only affects a handful of diagnostics and I think it makes sense to either provide them unconditionally, or to not provided them at all.
-rw-r--r--libcxx/docs/ReleaseNotes/19.rst3
-rw-r--r--libcxx/docs/UsingLibcxx.rst9
-rw-r--r--libcxx/include/__config2
3 files changed, 4 insertions, 10 deletions
diff --git a/libcxx/docs/ReleaseNotes/19.rst b/libcxx/docs/ReleaseNotes/19.rst
index ac4fd0ecc122..5a07b11cbcd5 100644
--- a/libcxx/docs/ReleaseNotes/19.rst
+++ b/libcxx/docs/ReleaseNotes/19.rst
@@ -118,6 +118,9 @@ Deprecations and Removals
a ``std::basic_*fstream`` from a ``std::basic_string_view``, a input-iterator or a C-string, instead
you can construct a temporary ``std::basic_string``. This change has been applied to C++17 and later.
+- The ``_LIBCPP_DISABLE_ADDITIONAL_DIAGNOSTICS`` macro has been removed and is not honored anymore. Additional
+ warnings provided by libc++ as a matter of QoI will now be provided unconditionally.
+
Upcoming Deprecations and Removals
----------------------------------
diff --git a/libcxx/docs/UsingLibcxx.rst b/libcxx/docs/UsingLibcxx.rst
index e7aaf4e1fbcf..0fdaeb433ac6 100644
--- a/libcxx/docs/UsingLibcxx.rst
+++ b/libcxx/docs/UsingLibcxx.rst
@@ -167,15 +167,6 @@ safety annotations.
build of libc++ which does not export any symbols, which can be useful when
building statically for inclusion into another library.
-**_LIBCPP_DISABLE_ADDITIONAL_DIAGNOSTICS**:
- This macro disables the additional diagnostics generated by libc++ using the
- `diagnose_if` attribute. These additional diagnostics include checks for:
-
- * Giving `set`, `map`, `multiset`, `multimap` and their `unordered_`
- counterparts a comparator which is not const callable.
- * Giving an unordered associative container a hasher that is not const
- callable.
-
**_LIBCPP_NO_VCRUNTIME**:
Microsoft's C and C++ headers are fairly entangled, and some of their C++
headers are fairly hard to avoid. In particular, `vcruntime_new.h` gets pulled
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 97cdd020c55d..e4c5c685a456 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -1390,7 +1390,7 @@ typedef __char32_t char32_t;
# define _LIBCPP_NO_DESTROY
# endif
-# if __has_attribute(__diagnose_if__) && !defined(_LIBCPP_DISABLE_ADDITIONAL_DIAGNOSTICS)
+# if __has_attribute(__diagnose_if__)
# define _LIBCPP_DIAGNOSE_WARNING(...) __attribute__((__diagnose_if__(__VA_ARGS__, "warning")))
# else
# define _LIBCPP_DIAGNOSE_WARNING(...)