[compiler-rt] [NFCI] [hwasan] Add test demonstrating hwasan lsan false positive (PR #142874)
Florian Mayer via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 4 16:06:54 PDT 2025
https://github.com/fmayer created https://github.com/llvm/llvm-project/pull/142874
None
>From 4411c72b01ed212955ea28f34cc794b2de5142e0 Mon Sep 17 00:00:00 2001
From: Florian Mayer <fmayer at google.com>
Date: Wed, 4 Jun 2025 16:06:40 -0700
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
=?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Created using spr 1.3.4
---
.../test/hwasan/TestCases/Posix/dlerror.cpp | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 compiler-rt/test/hwasan/TestCases/Posix/dlerror.cpp
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..8b1e02771d1f8
--- /dev/null
+++ b/compiler-rt/test/hwasan/TestCases/Posix/dlerror.cpp
@@ -0,0 +1,28 @@
+// Make sure dlerror is not classified as a leak even if we use dynamic TLS.
+// 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;
+}
More information about the llvm-commits
mailing list