diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-08-29 23:42:34 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-08-29 23:42:34 +0000 |
| commit | 8dbbf56aa104173e7defd9bce10603e6aa678810 (patch) | |
| tree | 38ce60bd502d6e113fa7f06debc23990db8cce6e /clang/test | |
| parent | 89876673cd45cc9da6aa971be1a947c3e6e67f28 (diff) | |
| download | bcm5719-llvm-8dbbf56aa104173e7defd9bce10603e6aa678810.tar.gz bcm5719-llvm-8dbbf56aa104173e7defd9bce10603e6aa678810.zip | |
[cfi] Export __cfi_check when linking with -fsanitize-cfi-cross-dso.
Multi-DSO CFI model requires every DSO to export a __cfi_check function.
llvm-svn: 280031
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Driver/sanitizer-ld.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/clang/test/Driver/sanitizer-ld.c b/clang/test/Driver/sanitizer-ld.c index 49561f48383..d22815e7de5 100644 --- a/clang/test/Driver/sanitizer-ld.c +++ b/clang/test/Driver/sanitizer-ld.c @@ -365,6 +365,7 @@ // RUN: | FileCheck --check-prefix=CHECK-CFI-CROSS-DSO-LINUX %s // CHECK-CFI-CROSS-DSO-LINUX: "{{.*}}ld{{(.exe)?}}" // CHECK-CFI-CROSS-DSO-LINUX: "-whole-archive" "{{[^"]*}}libclang_rt.cfi-x86_64.a" "-no-whole-archive" +// CHECK-CFI-CROSS-DSO-LINUX: -export-dynamic // Cross-DSO CFI with diagnostics links just the CFI runtime. // RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso %s -### -o %t.o 2>&1 \ @@ -374,6 +375,7 @@ // RUN: | FileCheck --check-prefix=CHECK-CFI-CROSS-DSO-DIAG-LINUX %s // CHECK-CFI-CROSS-DSO-DIAG-LINUX: "{{.*}}ld{{(.exe)?}}" // CHECK-CFI-CROSS-DSO-DIAG-LINUX: "-whole-archive" "{{[^"]*}}libclang_rt.cfi_diag-x86_64.a" "-no-whole-archive" +// CHECK-CFI-CROSS-DSO-DIAG-LINUX: -export-dynamic // RUN: %clangxx -fsanitize=address %s -### -o %t.o 2>&1 \ // RUN: -mmacosx-version-min=10.6 \ @@ -452,6 +454,26 @@ // CHECK-SAFESTACK-ANDROID-AARCH64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" // CHECK-SAFESTACK-ANDROID-AARCH64-NOT: libclang_rt.safestack +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: -target arm-linux-androideabi -fsanitize=cfi \ +// RUN: --sysroot=%S/Inputs/basic_android_tree \ +// RUN: | FileCheck --check-prefix=CHECK-CFI-ANDROID %s +// +// CHECK-CFI-ANDROID: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-CFI-ANDROID-NOT: libclang_rt.cfi +// CHECK-CFI-ANDROID-NOT: __cfi_check + +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: -target arm-linux-androideabi -fsanitize=cfi \ +// RUN: -fsanitize-cfi-cross-dso \ +// RUN: --sysroot=%S/Inputs/basic_android_tree \ +// RUN: | FileCheck --check-prefix=CHECK-CROSSDSO-CFI-ANDROID %s +// +// CHECK-CROSSDSO-CFI-ANDROID: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-CROSSDSO-CFI-ANDROID-NOT: libclang_rt.cfi +// CHECK-CROSSDSO-CFI-ANDROID: -export-dynamic-symbol=__cfi_check +// CHECK-CROSSDSO-CFI-ANDROID-NOT: libclang_rt.cfi + // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ // RUN: -target x86_64-scei-ps4 \ // RUN: -shared \ |

