mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 18:16:42 +00:00
[libc++] Deprecate _LIBCPP_ENABLE_ASSERTIONS & friends (#98364)
In LLVM 19, the old xxx_ENABLE_ASSERTIONS settings should be deprecated with the goal of removing them entirely in LLVM 20.
This commit is contained in:
parent
3fe8ce390d
commit
9bd575dd60
@ -784,8 +784,8 @@ config_define_if_not(LIBCXX_ENABLE_WIDE_CHARACTERS _LIBCPP_HAS_NO_WIDE_CHARACTER
|
||||
config_define_if_not(LIBCXX_ENABLE_TIME_ZONE_DATABASE _LIBCPP_HAS_NO_TIME_ZONE_DATABASE)
|
||||
config_define_if_not(LIBCXX_ENABLE_VENDOR_AVAILABILITY_ANNOTATIONS _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS)
|
||||
|
||||
# TODO(LLVM 19): Produce a deprecation warning.
|
||||
if (LIBCXX_ENABLE_ASSERTIONS)
|
||||
message(DEPRECATION "LIBCXX_ENABLE_ASSERTIONS is deprecated and will be removed in LLVM 20. Please use LIBCXX_HARDENING_MODE instead.")
|
||||
set(LIBCXX_HARDENING_MODE "extensive")
|
||||
endif()
|
||||
if (LIBCXX_HARDENING_MODE STREQUAL "none")
|
||||
|
@ -89,7 +89,7 @@ Deprecations and Removals
|
||||
This decision is based on LEWGs discussion on `P3122 <https://wg21.link/P3122>` and `P3162 <https://wg21.link/P3162>`
|
||||
to not use ``[[nodiscard]]`` in the standard.
|
||||
|
||||
- TODO: The ``LIBCXX_ENABLE_ASSERTIONS`` CMake variable that was used to enable the safe mode has been deprecated and setting
|
||||
- The ``LIBCXX_ENABLE_ASSERTIONS`` CMake variable that was used to enable the safe mode has been deprecated and setting
|
||||
it triggers an error; use the ``LIBCXX_HARDENING_MODE`` CMake variable with the value ``extensive`` instead. Similarly,
|
||||
the ``_LIBCPP_ENABLE_ASSERTIONS`` macro has been deprecated (setting it to ``1`` still enables the extensive mode in
|
||||
the LLVM 19 release while also issuing a deprecation warning). See :ref:`the hardening documentation
|
||||
|
@ -38,10 +38,10 @@
|
||||
|
||||
// HARDENING {
|
||||
|
||||
// TODO(hardening): deprecate this in LLVM 19.
|
||||
// This is for backward compatibility -- make enabling `_LIBCPP_ENABLE_ASSERTIONS` (which predates hardening modes)
|
||||
// equivalent to setting the extensive mode.
|
||||
// equivalent to setting the extensive mode. This is deprecated and will be removed in LLVM 20.
|
||||
# ifdef _LIBCPP_ENABLE_ASSERTIONS
|
||||
# warning "_LIBCPP_ENABLE_ASSERTIONS is deprecated, please use _LIBCPP_HARDENING_MODE instead"
|
||||
# if _LIBCPP_ENABLE_ASSERTIONS != 0 && _LIBCPP_ENABLE_ASSERTIONS != 1
|
||||
# error "_LIBCPP_ENABLE_ASSERTIONS must be set to 0 or 1"
|
||||
# endif
|
||||
|
@ -19,7 +19,7 @@
|
||||
// HWASAN replaces TRAP with abort or error exit code.
|
||||
// XFAIL: hwasan
|
||||
// Note that GCC doesn't support `-Wno-macro-redefined`.
|
||||
// ADDITIONAL_COMPILE_FLAGS: -U_LIBCPP_HARDENING_MODE -D_LIBCPP_ENABLE_ASSERTIONS=1
|
||||
// ADDITIONAL_COMPILE_FLAGS: -U_LIBCPP_HARDENING_MODE -D_LIBCPP_ENABLE_ASSERTIONS=1 -Wno-#warnings -Wno-cpp
|
||||
|
||||
#include <cassert>
|
||||
#include "check_assertion.h"
|
||||
|
Loading…
x
Reference in New Issue
Block a user