[compiler-rt] [NFCI] [hwasan] Add test demonstrating hwasan lsan false positive (PR #142874)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 4 16:09:25 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Florian Mayer (fmayer)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/142874.diff
1 Files Affected:
- (added) compiler-rt/test/hwasan/TestCases/Posix/dlerror.cpp (+30)
``````````diff
diff --git a/compiler-rt/test/hwasan/TestCases/Posix/dlerror.cpp b/compiler-rt/test/hwasan/TestCases/Posix/dlerror.cpp
new file mode 100644
index 0000000000000..2b8269852d50b
--- /dev/null
+++ b/compiler-rt/test/hwasan/TestCases/Posix/dlerror.cpp
@@ -0,0 +1,30 @@
+// Make sure dlerror is not classified as a leak even if we use dynamic TLS.
+// This is currently not implemented, so this test is XFAIL.
+
+// RUN: %clangxx_hwasan -O0 %s -o %t && HWASAN_OPTIONS=detect_leaks=1 %run %t
+// XFAIL: *
+
+#include <assert.h>
+#include <dlfcn.h>
+#include <pthread.h>
+#include <sanitizer/hwasan_interface.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+constexpr auto kKeys = 100;
+
+int main(int argc, char **argv) {
+ __hwasan_enable_allocator_tagging();
+ // Exhaust static TLS slots to force use of dynamic TLS.
+ pthread_key_t keys[kKeys];
+ for (int i = 0; i < kKeys; ++i) {
+ assert(pthread_key_create(&keys[i], nullptr) == 0);
+ }
+ void* o = dlopen("invalid_file_name.so", 0);
+ const char* err = dlerror();
+ for (int i = 0; i < kKeys; ++i) {
+ assert(pthread_key_delete(keys[i]) == 0);
+ }
+ return 0;
+}
``````````
</details>
https://github.com/llvm/llvm-project/pull/142874
More information about the llvm-commits
mailing list