[libcxx-commits] [libcxx] f25f9e4 - [libc++][NFC] Remove a bunch of redundant ASan existence checks (#128504)
via libcxx-commits
libcxx-commits at lists.llvm.org
Tue May 6 13:17:01 PDT 2025
Author: Nikolas Klauser
Date: 2025-05-06T22:16:58+02:00
New Revision: f25f9e480bd00f467919ec1d6824e533e500f6c3
URL: https://github.com/llvm/llvm-project/commit/f25f9e480bd00f467919ec1d6824e533e500f6c3
DIFF: https://github.com/llvm/llvm-project/commit/f25f9e480bd00f467919ec1d6824e533e500f6c3.diff
LOG: [libc++][NFC] Remove a bunch of redundant ASan existence checks (#128504)
There are currently lots of `_LIBCPP_HAS_ASAN` and
`__libcpp_is_constant_evaluated()` checks which aren't needed, since it
is centrally checked inside `__debug_utils/sanitizers.h`.
Added:
Modified:
libcxx/include/__vector/vector.h
libcxx/include/string
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
Removed:
################################################################################
diff --git a/libcxx/include/__vector/vector.h b/libcxx/include/__vector/vector.h
index 11656bc791e6d..af3f7b974cdcf 100644
--- a/libcxx/include/__vector/vector.h
+++ b/libcxx/include/__vector/vector.h
@@ -716,47 +716,32 @@ class vector {
}
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __annotate_new(size_type __current_size) const _NOEXCEPT {
- (void)__current_size;
-#if _LIBCPP_HAS_ASAN
__annotate_contiguous_container(data() + capacity(), data() + __current_size);
-#endif
}
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __annotate_delete() const _NOEXCEPT {
-#if _LIBCPP_HAS_ASAN
__annotate_contiguous_container(data() + size(), data() + capacity());
-#endif
}
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __annotate_increase(size_type __n) const _NOEXCEPT {
- (void)__n;
-#if _LIBCPP_HAS_ASAN
__annotate_contiguous_container(data() + size(), data() + size() + __n);
-#endif
}
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __annotate_shrink(size_type __old_size) const _NOEXCEPT {
- (void)__old_size;
-#if _LIBCPP_HAS_ASAN
__annotate_contiguous_container(data() + __old_size, data() + size());
-#endif
}
struct _ConstructTransaction {
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI explicit _ConstructTransaction(vector& __v, size_type __n)
: __v_(__v), __pos_(__v.__end_), __new_end_(__v.__end_ + __n) {
-#if _LIBCPP_HAS_ASAN
__v_.__annotate_increase(__n);
-#endif
}
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI ~_ConstructTransaction() {
__v_.__end_ = __pos_;
-#if _LIBCPP_HAS_ASAN
if (__pos_ != __new_end_) {
__v_.__annotate_shrink(__new_end_ - __v_.__begin_);
}
-#endif
}
vector& __v_;
diff --git a/libcxx/include/string b/libcxx/include/string
index f60616d522cfe..33f2598f85449 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -2223,7 +2223,7 @@ private:
__annotate_contiguous_container(const void* __old_mid, const void* __new_mid) const {
(void)__old_mid;
(void)__new_mid;
-# if _LIBCPP_HAS_ASAN && _LIBCPP_INSTRUMENTED_WITH_ASAN
+# if _LIBCPP_INSTRUMENTED_WITH_ASAN
# if defined(__APPLE__)
// TODO: remove after addressing issue #96099 (https://github.com/llvm/llvm-project/issues/96099)
if (!__is_long())
@@ -2234,34 +2234,19 @@ private:
}
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_new(size_type __current_size) const _NOEXCEPT {
- (void)__current_size;
-# if _LIBCPP_HAS_ASAN && _LIBCPP_INSTRUMENTED_WITH_ASAN
- if (!__libcpp_is_constant_evaluated())
- __annotate_contiguous_container(data() + capacity() + 1, data() + __current_size + 1);
-# endif
+ __annotate_contiguous_container(data() + capacity() + 1, data() + __current_size + 1);
}
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_delete() const _NOEXCEPT {
-# if _LIBCPP_HAS_ASAN && _LIBCPP_INSTRUMENTED_WITH_ASAN
- if (!__libcpp_is_constant_evaluated())
- __annotate_contiguous_container(data() + size() + 1, data() + capacity() + 1);
-# endif
+ __annotate_contiguous_container(data() + size() + 1, data() + capacity() + 1);
}
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_increase(size_type __n) const _NOEXCEPT {
- (void)__n;
-# if _LIBCPP_HAS_ASAN && _LIBCPP_INSTRUMENTED_WITH_ASAN
- if (!__libcpp_is_constant_evaluated())
- __annotate_contiguous_container(data() + size() + 1, data() + size() + 1 + __n);
-# endif
+ __annotate_contiguous_container(data() + size() + 1, data() + size() + 1 + __n);
}
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_shrink(size_type __old_size) const _NOEXCEPT {
- (void)__old_size;
-# if _LIBCPP_HAS_ASAN && _LIBCPP_INSTRUMENTED_WITH_ASAN
- if (!__libcpp_is_constant_evaluated())
- __annotate_contiguous_container(data() + __old_size + 1, data() + size() + 1);
-# endif
+ __annotate_contiguous_container(data() + __old_size + 1, data() + size() + 1);
}
// Disable ASan annotations and enable them again when going out of scope. It is assumed that the string is in a valid
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
index 3d981e8b3a3cd..388b9ffd3b161 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
@@ -7,6 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20, c++23
+// ADDITIONAL_COMPILE_FLAGS(has-fconstexpr-steps): -fconstexpr-steps=9000000
// <string>
More information about the libcxx-commits
mailing list