Home | History | Annotate | Download | only in Driver
      1 // Test sanitizer link flags on Darwin.
      2 
      3 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
      4 // RUN:   -stdlib=platform -fsanitize=address %s -o %t.o 2>&1 \
      5 // RUN:   | FileCheck --check-prefix=CHECK-ASAN %s
      6 
      7 // CHECK-ASAN: "{{.*}}ld{{(.exe)?}}"
      8 // CHECK-ASAN-NOT: "-lstdc++"
      9 // CHECK-ASAN-NOT: "-lc++"
     10 // CHECK-ASAN: libclang_rt.asan_osx_dynamic.dylib"
     11 // CHECK-ASAN: "-rpath" "@executable_path"
     12 // CHECK-ASAN: "-rpath" "{{.*}}lib{{.*}}darwin"
     13 
     14 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
     15 // RUN:   -fPIC -shared -fsanitize=address %s -o %t.so 2>&1 \
     16 // RUN:   | FileCheck --check-prefix=CHECK-DYN-ASAN %s
     17 
     18 // CHECK-DYN-ASAN: "{{.*}}ld{{(.exe)?}}"
     19 // CHECK-DYN-ASAN: "-dylib"
     20 // CHECK-DYN-ASAN: libclang_rt.asan_osx_dynamic.dylib"
     21 // CHECK-DYN-ASAN: "-rpath" "@executable_path"
     22 // CHECK-DYN-ASAN: "-rpath" "{{.*}}lib{{.*}}darwin"
     23 
     24 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
     25 // RUN:   -stdlib=platform -fsanitize=undefined %s -o %t.o 2>&1 \
     26 // RUN:   | FileCheck --check-prefix=CHECK-UBSAN %s
     27 
     28 // CHECK-UBSAN: "{{.*}}ld{{(.exe)?}}"
     29 // CHECK-UBSAN-NOT: "-lstdc++"
     30 // CHECK-UBSAN-NOT: "-lc++"
     31 // CHECK-UBSAN: libclang_rt.ubsan_osx_dynamic.dylib"
     32 // CHECK-UBSAN: "-rpath" "@executable_path"
     33 // CHECK-UBSAN: "-rpath" "{{.*}}lib{{.*}}darwin"
     34 
     35 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
     36 // RUN:   -fsanitize=bounds -fsanitize-undefined-trap-on-error \
     37 // RUN:   %s -o %t.o 2>&1 \
     38 // RUN:   | FileCheck --check-prefix=CHECK-BOUNDS %s
     39 
     40 // CHECK-BOUNDS: "{{.*}}ld{{(.exe)?}}"
     41 // CHECK-BOUNDS-NOT: libclang_rt.ubsan_osx.a"
     42 
     43 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
     44 // RUN:   -fPIC -shared -fsanitize=undefined %s -o %t.so 2>&1 \
     45 // RUN:   | FileCheck --check-prefix=CHECK-DYN-UBSAN %s
     46 
     47 // CHECK-DYN-UBSAN: "{{.*}}ld{{(.exe)?}}"
     48 // CHECK-DYN-UBSAN: "-dylib"
     49 // CHECK-DYN-UBSAN: libclang_rt.ubsan_osx_dynamic.dylib"
     50 // CHECK-DYN-UBSAN: "-rpath" "@executable_path"
     51 // CHECK-DYN-UBSAN: "-rpath" "{{.*}}lib{{.*}}darwin"
     52 
     53 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
     54 // RUN:   -fsanitize=bounds -fsanitize-undefined-trap-on-error \
     55 // RUN:   %s -o %t.so -fPIC -shared 2>&1 \
     56 // RUN:   | FileCheck --check-prefix=CHECK-DYN-BOUNDS %s
     57 
     58 // CHECK-DYN-BOUNDS: "{{.*}}ld{{(.exe)?}}"
     59 // CHECK-DYN-BOUNDS-NOT: ubsan_osx
     60 
     61 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
     62 // RUN:   -stdlib=platform -fsanitize=address -mios-simulator-version-min=7.0 \
     63 // RUN:   %s -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-ASAN-IOSSIM %s
     64 
     65 // CHECK-ASAN-IOSSIM: "{{.*}}ld{{(.exe)?}}"
     66 // CHECK-ASAN-IOSSIM-NOT: "-lstdc++"
     67 // CHECK-ASAN-IOSSIM-NOT: "-lc++"
     68 // CHECK-ASAN-IOSSIM: libclang_rt.asan_iossim_dynamic.dylib"
     69 // CHECK-ASAN-IOSSIM: "-rpath" "@executable_path"
     70 // CHECK-ASAN-IOSSIM: "-rpath" "{{.*}}lib{{.*}}darwin"
     71 
     72 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
     73 // RUN:   -stdlib=platform -fsanitize=address \
     74 // RUN:   -mtvos-simulator-version-min=8.3.0 %s -o %t.o 2>&1 \
     75 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-TVOSSIM %s
     76 
     77 // CHECK-ASAN-TVOSSIM: "{{.*}}ld{{(.exe)?}}"
     78 // CHECK-ASAN-TVOSSIM-NOT: "-lstdc++"
     79 // CHECK-ASAN-TVOSSIM-NOT: "-lc++"
     80 // CHECK-ASAN-TVOSSIM: libclang_rt.asan_tvossim_dynamic.dylib"
     81 // CHECK-ASAN-TVOSSIM: "-rpath" "@executable_path"
     82 // CHECK-ASAN-TVOSSIM: "-rpath" "{{.*}}lib{{.*}}darwin"
     83 
     84 // RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
     85 // RUN:   -stdlib=platform -fsanitize=address \
     86 // RUN:   -mwatchos-simulator-version-min=2.0.0 %s -o %t.o 2>&1 \
     87 // RUN:   | FileCheck --check-prefix=CHECK-ASAN-WATCHOSSIM %s
     88 
     89 // CHECK-ASAN-WATCHOSSIM: "{{.*}}ld{{(.exe)?}}"
     90 // CHECK-ASAN-WATCHOSSIM-NOT: "-lstdc++"
     91 // CHECK-ASAN-WATCHOSSIM-NOT: "-lc++"
     92 // CHECK-ASAN-WATCHOSSIM: libclang_rt.asan_watchossim_dynamic.dylib"
     93 // CHECK-ASAN-WATCHOSSIM: "-rpath" "@executable_path"
     94 // CHECK-ASAN-WATCHOSSIM: "-rpath" "{{.*}}lib{{.*}}darwin"
     95 
     96 // RUN: %clang -no-canonical-prefixes -### -target armv7-apple-ios  \
     97 // RUN:   -stdlib=platform -fsanitize=address -miphoneos-version-min=7 \
     98 // RUN:   %s -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-ASAN-IOS %s
     99 
    100 // CHECK-ASAN-IOS: "{{.*}}ld{{(.exe)?}}"
    101 // CHECK-ASAN-IOS-NOT: "-lstdc++"
    102 // CHECK-ASAN-IOS-NOT: "-lc++"
    103 // CHECK-ASAN-IOS: libclang_rt.asan_ios_dynamic.dylib"
    104 // CHECK-ASAN-IOS: "-rpath" "@executable_path"
    105 // CHECK-ASAN-IOS: "-rpath" "{{.*}}lib{{.*}}darwin"
    106 
    107 // RUN: %clang -no-canonical-prefixes -### -target arm64-apple-tvos \
    108 // RUN:   -stdlib=platform -fsanitize=address -mtvos-version-min=8.3 \
    109 // RUN:   %s -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-ASAN-TVOS %s
    110 
    111 // CHECK-ASAN-TVOS: "{{.*}}ld{{(.exe)?}}"
    112 // CHECK-ASAN-TVOS-NOT: "-lstdc++"
    113 // CHECK-ASAN-TVOS-NOT: "-lc++"
    114 // CHECK-ASAN-TVOS: libclang_rt.asan_tvos_dynamic.dylib"
    115 // CHECK-ASAN-TVOS: "-rpath" "@executable_path"
    116 // CHECK-ASAN-TVOS: "-rpath" "{{.*}}lib{{.*}}darwin"
    117 
    118 // RUN: %clang -no-canonical-prefixes -### -target armv7k-apple-watchos \
    119 // RUN:   -stdlib=platform -fsanitize=address -mwatchos-version-min=2.0 \
    120 // RUN:   %s -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-ASAN-WATCHOS %s
    121 
    122 // CHECK-ASAN-WATCHOS: "{{.*}}ld{{(.exe)?}}"
    123 // CHECK-ASAN-WATCHOS-NOT: "-lstdc++"
    124 // CHECK-ASAN-WATCHOS-NOT: "-lc++"
    125 // CHECK-ASAN-WATCHOS: libclang_rt.asan_watchos_dynamic.dylib"
    126 // CHECK-ASAN-WATCHOS: "-rpath" "@executable_path"
    127 // CHECK-ASAN-WATCHOS: "-rpath" "{{.*}}lib{{.*}}darwin"
    128