[clang] [SSAF] Fix a stage2 test failure with ASan-instrumented clang - continued (PR #217799)
Ziqing Luo via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 20 18:53:24 PDT 2026
https://github.com/ziqingluo-90 created https://github.com/llvm/llvm-project/pull/217799
The previous effort in PR#211432 that disables ASan for one static global is not sufficient. This commit disables ASan for the whole test plugin.
rdar://182623740
>From 8c78d4bac200d3564227b136d1cf59f9708e6e87 Mon Sep 17 00:00:00 2001
From: Ziqing Luo <ziqing_luo at apple.com>
Date: Thu, 20 Aug 2026 18:29:56 -0700
Subject: [PATCH] [SSAF] Fix a stage2 test failure with ASan-instrumented clang
- continued
The previous effort in PR#211432 that disables ASan for one static
global is not sufficient. This commit disables ASan for the whole test
plugin.
rdar://182623740
---
.../Plugins/TestTransformationPlugin/CMakeLists.txt | 13 +++++++++++++
.../TestTransformationPlugin/TestTransformation.cpp | 3 ---
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeLists.txt b/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeLists.txt
index 7f170be16d2cc..b08f27ef0165f 100644
--- a/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeLists.txt
+++ b/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/CMakeLists.txt
@@ -14,3 +14,16 @@ target_include_directories(SSAFTestTransformationPlugin PRIVATE
$<TARGET_PROPERTY:clangScalableStaticAnalysisCore,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:clangScalableStaticAnalysisSourceTransformation,INTERFACE_INCLUDE_DIRECTORIES>
)
+
+# The plugin is loaded into a clang that may be built with sanitizers (e.g. the
+# stage-2 -DLLVM_USE_SANITIZER=Address bots), but does not need instrumenting
+# itself. With ASan, -Wl,-dead_strip drops anonymous constants that ASan's
+# metadata still references, leaving dangling flat-namespace binds that break
+# dlopen ("symbol not found in flat namespace 'l___unnamed_NNNN'"). Opt out.
+if(LLVM_USE_SANITIZER)
+ target_compile_options(SSAFTestTransformationPlugin PRIVATE -fno-sanitize=all)
+ target_link_options(SSAFTestTransformationPlugin PRIVATE -fno-sanitize=all)
+endif()
+ target_compile_options(SSAFTestTransformationPlugin PRIVATE -fno-sanitize=all)
+ target_link_options(SSAFTestTransformationPlugin PRIVATE -fno-sanitize=all)
+endif()
diff --git a/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp b/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp
index 33a8319cd5b6a..d3edc34882cef 100644
--- a/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp
+++ b/clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp
@@ -94,10 +94,7 @@ namespace clang::ssaf {
volatile int SSAFTestTransformationAnchorSource = 0;
} // namespace clang::ssaf
-// This global causes issue in stage2 with ASan-instrumented clang so
-// adding the no-ASan attribute.
static TransformationRegistry::Add<TestTransformation>
- __attribute__((no_sanitize("address")))
RegisterTestTransformation("test-transformation",
"Test transformation for the SSAF "
"source-edit-generation lit suite");
More information about the cfe-commits
mailing list