Skip to content

Commit c00fee8

Browse files
committed
[𝘀𝗽𝗿] initial version
Created using spr 1.3.4
2 parents b73e541 + d5d3236 commit c00fee8

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

clang/test/Driver/sanitizer-ld.c

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -829,17 +829,29 @@
829829

830830
// CHECK-NSAN-UBSAN: "--whole-archive" "{{[^"]*}}libclang_rt.nsan.a" "--no-whole-archive"
831831

832-
// CFI by itself does not link runtime libraries.
832+
// CFI requirements.
833833
// RUN: not %clang -fsanitize=cfi \
834834
// RUN: --target=x86_64-unknown-linux -fuse-ld=ld -rtlib=platform \
835835
// RUN: -resource-dir=%S/Inputs/resource_dir \
836836
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
837837
// RUN: -### %s 2>&1 \
838+
// RUN: | %{filecheck} --check-prefix=CHECK-CFI-PREREQ-LINUX
839+
// CHECK-CFI-PREREQ-LINUX: '-fsanitize=cfi' only allowed with '-flto'
840+
// CHECK-CFI-PREREQ-LINUX: '-fsanitize=cfi' only allowed with '-fvisibility='
841+
842+
// CFI by itself does not link runtime libraries.
843+
// RUN: %clang -fsanitize=cfi \
844+
// RUN: -flto -fvisibility=hidden \
845+
// RUN: --target=x86_64-unknown-linux -fuse-ld=ld -rtlib=platform \
846+
// RUN: -resource-dir=%S/Inputs/resource_dir \
847+
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
848+
// RUN: -### %s 2>&1 \
838849
// RUN: | %{filecheck} --check-prefix=CHECK-CFI-LINUX
839850
// CHECK-CFI-LINUX: "{{.*}}ld{{(.exe)?}}"
840851

841852
// CFI with diagnostics links the UBSan runtime.
842-
// RUN: not %clang -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-recover=cfi \
853+
// RUN: %clang -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-recover=cfi \
854+
// RUN: -flto -fvisibility=hidden \
843855
// RUN: --target=x86_64-unknown-linux -fuse-ld=ld \
844856
// RUN: -resource-dir=%S/Inputs/resource_dir \
845857
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
@@ -849,7 +861,8 @@
849861
// CHECK-CFI-DIAG-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.ubsan_standalone.a" "--no-whole-archive"
850862

851863
// Cross-DSO CFI links the CFI runtime.
852-
// RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \
864+
// RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \
865+
// RUN: -flto -fvisibility=hidden \
853866
// RUN: --target=x86_64-unknown-linux -fuse-ld=ld \
854867
// RUN: -resource-dir=%S/Inputs/resource_dir \
855868
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
@@ -860,7 +873,8 @@
860873
// CHECK-CFI-CROSS-DSO-LINUX: -export-dynamic
861874

862875
// Cross-DSO CFI with diagnostics links just the CFI runtime.
863-
// RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \
876+
// RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \
877+
// RUN: -flto -fvisibility=hidden \
864878
// RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \
865879
// RUN: --target=x86_64-unknown-linux -fuse-ld=ld \
866880
// RUN: -resource-dir=%S/Inputs/resource_dir \
@@ -872,7 +886,8 @@
872886
// CHECK-CFI-CROSS-DSO-DIAG-LINUX: -export-dynamic
873887

874888
// Cross-DSO CFI on Android does not link runtime libraries.
875-
// RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \
889+
// RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \
890+
// RUN: -flto -fvisibility=hidden \
876891
// RUN: --target=aarch64-linux-android -fuse-ld=ld \
877892
// RUN: -resource-dir=%S/Inputs/resource_dir \
878893
// RUN: --sysroot=%S/Inputs/basic_android_tree \
@@ -881,7 +896,8 @@
881896
// CHECK-CFI-CROSS-DSO-ANDROID: "{{.*}}ld{{(.exe)?}}"
882897

883898
// Cross-DSO CFI with diagnostics on Android links just the UBSAN runtime.
884-
// RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \
899+
// RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \
900+
// RUN: -flto -fvisibility=hidden \
885901
// RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \
886902
// RUN: --target=aarch64-linux-android -fuse-ld=ld \
887903
// RUN: -resource-dir=%S/Inputs/resource_dir \

0 commit comments

Comments
 (0)