[compiler-rt] [compiler-rt][asan][test] Make wchar tests more robust (PR #163715)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 16 00:07:04 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Maosu Zhao (zhaomaosu)
<details>
<summary>Changes</summary>
The stack buffer which is used to trigger out of bounds issue doesn't have obervable side effects, so it can easily be optimized by compiler as dead code.
---
Full diff: https://github.com/llvm/llvm-project/pull/163715.diff
4 Files Affected:
- (modified) compiler-rt/test/asan/TestCases/wcscat.cpp (+4-2)
- (modified) compiler-rt/test/asan/TestCases/wcscpy.cpp (+4-2)
- (modified) compiler-rt/test/asan/TestCases/wcsncat.cpp (+4-2)
- (modified) compiler-rt/test/asan/TestCases/wcsncpy.cpp (+4-2)
``````````diff
diff --git a/compiler-rt/test/asan/TestCases/wcscat.cpp b/compiler-rt/test/asan/TestCases/wcscat.cpp
index fd0b5a4310351..beab1dc52e437 100644
--- a/compiler-rt/test/asan/TestCases/wcscat.cpp
+++ b/compiler-rt/test/asan/TestCases/wcscat.cpp
@@ -9,11 +9,13 @@
int main() {
const wchar_t *start = L"X means ";
const wchar_t *append = L"dog";
- wchar_t goodDst[12];
+ wchar_t goodArray[12];
+ wchar_t *volatile goodDst = goodArray;
wcscpy(goodDst, start);
wcscat(goodDst, append);
- wchar_t badDst[9];
+ wchar_t badArray[9];
+ wchar_t *volatile badDst = badArray;
wcscpy(badDst, start);
fprintf(stderr, "Good so far.\n");
// CHECK-DAG: Good so far.
diff --git a/compiler-rt/test/asan/TestCases/wcscpy.cpp b/compiler-rt/test/asan/TestCases/wcscpy.cpp
index 8133a588cb071..2b828035cb498 100644
--- a/compiler-rt/test/asan/TestCases/wcscpy.cpp
+++ b/compiler-rt/test/asan/TestCases/wcscpy.cpp
@@ -8,10 +8,12 @@
int main() {
const wchar_t *src = L"X means dog";
- wchar_t goodDst[12];
+ wchar_t goodArray[12];
+ wchar_t *volatile goodDst = goodArray;
wcscpy(goodDst, src);
- wchar_t badDst[7];
+ wchar_t badArray[7];
+ wchar_t *volatile badDst = badArray;
fprintf(stderr, "Good so far.\n");
// CHECK-DAG: Good so far.
fflush(stderr);
diff --git a/compiler-rt/test/asan/TestCases/wcsncat.cpp b/compiler-rt/test/asan/TestCases/wcsncat.cpp
index 365e732e2d051..04cdcf290ffed 100644
--- a/compiler-rt/test/asan/TestCases/wcsncat.cpp
+++ b/compiler-rt/test/asan/TestCases/wcsncat.cpp
@@ -9,11 +9,13 @@
int main() {
const wchar_t *start = L"X means ";
const wchar_t *append = L"dog";
- wchar_t goodDst[15];
+ wchar_t goodArray[15];
+ wchar_t *volatile goodDst = goodArray;
wcscpy(goodDst, start);
wcsncat(goodDst, append, 5);
- wchar_t badDst[11];
+ wchar_t badArray[11];
+ wchar_t *volatile badDst = badArray;
wcscpy(badDst, start);
wcsncat(badDst, append, 1);
fprintf(stderr, "Good so far.\n");
diff --git a/compiler-rt/test/asan/TestCases/wcsncpy.cpp b/compiler-rt/test/asan/TestCases/wcsncpy.cpp
index 485ddc4804dcd..9e11b55fe4ec9 100644
--- a/compiler-rt/test/asan/TestCases/wcsncpy.cpp
+++ b/compiler-rt/test/asan/TestCases/wcsncpy.cpp
@@ -8,10 +8,12 @@
int main() {
const wchar_t *src = L"X means dog";
- wchar_t goodDst[12];
+ wchar_t goodArray[12];
+ wchar_t *volatile goodDst = goodArray;
wcsncpy(goodDst, src, 12);
- wchar_t badDst[7];
+ wchar_t badArray[7];
+ wchar_t *volatile badDst = badArray;
wcsncpy(badDst, src, 7); // This should still work.
fprintf(stderr, "Good so far.\n");
// CHECK-DAG: Good so far.
``````````
</details>
https://github.com/llvm/llvm-project/pull/163715
More information about the llvm-commits
mailing list