|
840 | 840 | // CHECK-CFI-PREREQ-LINUX: '-fsanitize=cfi' only allowed with '-fvisibility='
|
841 | 841 |
|
842 | 842 | // CFI by itself does not link runtime libraries.
|
843 |
| -// RUN: not %clang -fsanitize=cfi \ |
| 843 | +// RUN: %clang -fsanitize=cfi \ |
| 844 | +// RUN: -flto -fvisibility=hidden \ |
844 | 845 | // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \
|
845 | 846 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
846 | 847 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \
|
|
849 | 850 | // CHECK-CFI-LINUX: "{{.*}}ld{{(.exe)?}}"
|
850 | 851 |
|
851 | 852 | // CFI with diagnostics links the UBSan runtime.
|
852 |
| -// 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 \ |
853 | 855 | // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \
|
854 | 856 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
855 | 857 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \
|
|
859 | 861 | // CHECK-CFI-DIAG-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.ubsan_standalone.a" "--no-whole-archive"
|
860 | 862 |
|
861 | 863 | // Cross-DSO CFI links the CFI runtime.
|
862 |
| -// RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \ |
| 864 | +// RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \ |
| 865 | +// RUN: -flto -fvisibility=hidden \ |
863 | 866 | // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \
|
864 | 867 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
865 | 868 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \
|
|
870 | 873 | // CHECK-CFI-CROSS-DSO-LINUX: -export-dynamic
|
871 | 874 |
|
872 | 875 | // Cross-DSO CFI with diagnostics links just the CFI runtime.
|
873 |
| -// RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \ |
| 876 | +// RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \ |
| 877 | +// RUN: -flto -fvisibility=hidden \ |
874 | 878 | // RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \
|
875 | 879 | // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \
|
876 | 880 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
|
882 | 886 | // CHECK-CFI-CROSS-DSO-DIAG-LINUX: -export-dynamic
|
883 | 887 |
|
884 | 888 | // Cross-DSO CFI on Android does not link runtime libraries.
|
885 |
| -// RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \ |
| 889 | +// RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \ |
| 890 | +// RUN: -flto -fvisibility=hidden \ |
886 | 891 | // RUN: --target=aarch64-linux-android -fuse-ld=ld \
|
887 | 892 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
888 | 893 | // RUN: --sysroot=%S/Inputs/basic_android_tree \
|
|
891 | 896 | // CHECK-CFI-CROSS-DSO-ANDROID: "{{.*}}ld{{(.exe)?}}"
|
892 | 897 |
|
893 | 898 | // Cross-DSO CFI with diagnostics on Android links just the UBSAN runtime.
|
894 |
| -// RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \ |
| 899 | +// RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso \ |
| 900 | +// RUN: -flto -fvisibility=hidden \ |
895 | 901 | // RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \
|
896 | 902 | // RUN: --target=aarch64-linux-android -fuse-ld=ld \
|
897 | 903 | // RUN: -resource-dir=%S/Inputs/resource_dir \
|
|
0 commit comments