Skip to content

Commit 60a2f32

Browse files
committed
Revert "[driver] Fix sanitizer libc++ runtime linking (llvm#120370)"
This reverts commit 9af5de3. Reason: buildbot breakage (https://lab.llvm.org/buildbot/#/builders/24/builds/3394/steps/10/logs/stdio) "Unexpectedly Passed Tests (1): llvm-libc++-shared.cfg.in :: libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp"
1 parent f334db9 commit 60a2f32

File tree

3 files changed

+15
-79
lines changed

3 files changed

+15
-79
lines changed

clang/lib/Driver/SanitizerArgs.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,11 +1098,10 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
10981098
options::OPT_fno_sanitize_link_runtime, LinkRuntimes);
10991099

11001100
// Parse -link-cxx-sanitizer flag.
1101-
LinkCXXRuntimes =
1102-
D.CCCIsCXX() && !Args.hasArg(clang::driver::options::OPT_nostdlibxx);
1103-
LinkCXXRuntimes =
1104-
Args.hasFlag(options::OPT_fsanitize_link_cxx_runtime,
1105-
options::OPT_fno_sanitize_link_cxx_runtime, LinkCXXRuntimes);
1101+
LinkCXXRuntimes = Args.hasArg(options::OPT_fsanitize_link_cxx_runtime,
1102+
options::OPT_fno_sanitize_link_cxx_runtime,
1103+
LinkCXXRuntimes) ||
1104+
D.CCCIsCXX();
11061105

11071106
NeedsMemProfRt = Args.hasFlag(options::OPT_fmemory_profile,
11081107
options::OPT_fmemory_profile_EQ,

clang/test/Driver/sanitizer-ld.c

Lines changed: 10 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -132,81 +132,18 @@
132132
// RUN: -resource-dir=%S/Inputs/empty_resource_dir \
133133
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
134134
// RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CXX %s
135-
136-
// RUN: %clangxx -### %s 2>&1 \
137-
// RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \
138-
// RUN: -resource-dir=%S/Inputs/empty_resource_dir \
139-
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
140-
// RUN: -fsanitize-link-c++-runtime \
141-
// RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CXX %s
142-
135+
//
136+
// CHECK-ASAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
143137
// CHECK-ASAN-LINUX-CXX-NOT: "-lc"
138+
// CHECK-ASAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive"
139+
// CHECK-ASAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan_cxx.a" "--no-whole-archive"
144140
// CHECK-ASAN-LINUX-CXX-NOT: "--dynamic-list"
145-
// CHECK-ASAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
146-
// CHECK-ASAN-LINUX-CXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive"
147-
// CHECK-ASAN-LINUX-CXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan_cxx.a" "--no-whole-archive"
148-
// CHECK-ASAN-LINUX-CXX-SAME: "--export-dynamic"
149-
// CHECK-ASAN-LINUX-CXX-SAME: stdc++
150-
// CHECK-ASAN-LINUX-CXX-SAME: "-lpthread"
151-
// CHECK-ASAN-LINUX-CXX-SAME: "-lrt"
152-
// CHECK-ASAN-LINUX-CXX-SAME: "-ldl"
153-
// CHECK-ASAN-LINUX-CXX-SAME: "-lresolv"
154-
155-
// RUN: %clang -### %s 2>&1 \
156-
// RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \
157-
// RUN: -resource-dir=%S/Inputs/empty_resource_dir \
158-
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
159-
// RUN: -fno-sanitize-link-c++-runtime \
160-
// RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CNOCXX %s
161-
162-
// CHECK-ASAN-LINUX-CNOCXX-NOT: "-lc"
163-
// CHECK-ASAN-LINUX-CNOCXX-NOT: libclang_rt.asan_cxx
164-
// CHECK-ASAN-LINUX-CNOCXX-NOT: "--dynamic-list"
165-
// CHECK-ASAN-LINUX-CNOCXX-NOT: stdc++
166-
// CHECK-ASAN-LINUX-CNOCXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
167-
// CHECK-ASAN-LINUX-CNOCXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive"
168-
// CHECK-ASAN-LINUX-CNOCXX-SAME: "--export-dynamic"
169-
// CHECK-ASAN-LINUX-CNOCXX-SAME: "-lpthread"
170-
// CHECK-ASAN-LINUX-CNOCXX-SAME: "-lrt"
171-
// CHECK-ASAN-LINUX-CNOCXX-SAME: "-ldl"
172-
// CHECK-ASAN-LINUX-CNOCXX-SAME: "-lresolv"
173-
174-
// RUN: %clangxx -### %s 2>&1 \
175-
// RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \
176-
// RUN: -resource-dir=%S/Inputs/empty_resource_dir \
177-
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
178-
// RUN: -fno-sanitize-link-c++-runtime \
179-
// RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-NOCXX %s
180-
181-
// CHECK-ASAN-LINUX-NOCXX-NOT: "-lc"
182-
// CHECK-ASAN-LINUX-NOCXX-NOT: libclang_rt.asan_cxx
183-
// CHECK-ASAN-LINUX-NOCXX-NOT: "--dynamic-list"
184-
// CHECK-ASAN-LINUX-NOCXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
185-
// CHECK-ASAN-LINUX-NOCXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive"
186-
// CHECK-ASAN-LINUX-NOCXX-SAME: "--export-dynamic"
187-
// CHECK-ASAN-LINUX-NOCXX-SAME: stdc++
188-
// CHECK-ASAN-LINUX-NOCXX-SAME: "-lpthread"
189-
// CHECK-ASAN-LINUX-NOCXX-SAME: "-lrt"
190-
// CHECK-ASAN-LINUX-NOCXX-SAME: "-ldl"
191-
// CHECK-ASAN-LINUX-NOCXX-SAME: "-lresolv"
192-
193-
// RUN: %clangxx -### %s 2>&1 \
194-
// RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \
195-
// RUN: -resource-dir=%S/Inputs/empty_resource_dir \
196-
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
197-
// RUN: -nostdlib++ \
198-
// RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-NOSTDCXX %s
199-
200-
// CHECK-ASAN-LINUX-NOSTDCXX-NOT: "-lc"
201-
// CHECK-ASAN-LINUX-NOSTDCXX-NOT: libclang_rt.asan_cxx
202-
// CHECK-ASAN-LINUX-NOSTDCXX-NOT: "--dynamic-list"
203-
// CHECK-ASAN-LINUX-NOSTDCXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
204-
// CHECK-ASAN-LINUX-NOSTDCXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive"
205-
// CHECK-ASAN-LINUX-NOSTDCXX-SAME: "--export-dynamic"
206-
// CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-lpthread"
207-
// CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-lrt"
208-
// CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-ldl"
209-
// CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-lresolv"
141+
// CHECK-ASAN-LINUX-CXX: "--export-dynamic"
142+
// CHECK-ASAN-LINUX-CXX: stdc++
143+
// CHECK-ASAN-LINUX-CXX: "-lpthread"
144+
// CHECK-ASAN-LINUX-CXX: "-lrt"
145+
// CHECK-ASAN-LINUX-CXX: "-ldl"
146+
// CHECK-ASAN-LINUX-CXX: "-lresolv"
210147

211148
// RUN: %clang -### %s -o /dev/null -fsanitize=address \
212149
// RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform \

compiler-rt/test/hwasan/TestCases/sizes.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// This test requires operator new to be intercepted by the hwasan runtime,
22
// so we need to avoid linking against libc++.
3-
// RUN: %clangxx_hwasan %s -nostdlib++ -lstdc++ -fsanitize-link-c++-runtime -o %t || %clangxx_hwasan %s -o %t
3+
// RUN: %clangxx_hwasan %s -nostdlib++ -lstdc++ -o %t || %clangxx_hwasan %s -o %t
44
// RUN: %env_hwasan_opts=allocator_may_return_null=0 not %run %t malloc 2>&1 | FileCheck %s --check-prefix=CHECK-max
55
// RUN: %env_hwasan_opts=allocator_may_return_null=1 %run %t malloc 2>&1
66
// RUN: %env_hwasan_opts=allocator_may_return_null=0 not %run %t malloc max 2>&1 | FileCheck %s --check-prefix=CHECK-max

0 commit comments

Comments
 (0)