Author: Roland McGrath Date: 2025-02-04T16:05:47-08:00 New Revision: 559687352284d56b1290327260111f8a6534801b
URL: https://github.com/llvm/llvm-project/commit/559687352284d56b1290327260111f8a6534801b DIFF: https://github.com/llvm/llvm-project/commit/559687352284d56b1290327260111f8a6534801b.diff LOG: Revert "[libc] Make LlvmLibcStackChkFail.Smash test compatible with asan, hwa…" This reverts commit 1e7624ca4f3c9df14242b532eeb9497c67bc4074. Added: Modified: libc/test/src/compiler/stack_chk_guard_test.cpp Removed: ################################################################################ diff --git a/libc/test/src/compiler/stack_chk_guard_test.cpp b/libc/test/src/compiler/stack_chk_guard_test.cpp index d1869a2af412e4..4ec8398c9fc95d 100644 --- a/libc/test/src/compiler/stack_chk_guard_test.cpp +++ b/libc/test/src/compiler/stack_chk_guard_test.cpp @@ -12,24 +12,19 @@ #include "src/string/memset.h" #include "test/UnitTest/Test.h" -namespace { - TEST(LlvmLibcStackChkFail, Death) { EXPECT_DEATH([] { __stack_chk_fail(); }, WITH_SIGNAL(SIGABRT)); } -// Disable sanitizers such as asan and hwasan that would catch the buffer -// overrun before it clobbered the stack canary word. Function attributes -// can't be applied to lambdas before C++23, so this has to be separate. When -// https://github.com/llvm/llvm-project/issues/125760 is fixed, this can use -// the modern spelling [[gnu::no_sanitize(...)]] without conditionalization. -__attribute__((no_sanitize("all"))) void smash_stack() { - int arr[20]; - LIBC_NAMESPACE::memset(arr, 0xAA, 2001); -} - +// Disable the test when asan is enabled so that it doesn't immediately fail +// after the memset, but before the stack canary is re-checked. +#ifndef LIBC_HAS_ADDRESS_SANITIZER TEST(LlvmLibcStackChkFail, Smash) { - EXPECT_DEATH(smash_stack, WITH_SIGNAL(SIGABRT)); + EXPECT_DEATH( + [] { + int arr[20]; + LIBC_NAMESPACE::memset(arr, 0xAA, 2001); + }, + WITH_SIGNAL(SIGABRT)); } - -} // namespace +#endif // LIBC_HAS_ADDRESS_SANITIZER _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits