diff options
Diffstat (limited to 'test/Driver')
-rw-r--r-- | test/Driver/Inputs/debian_multiarch_tree/lib/powerpc64le-linux-gnu/.keep | 0 | ||||
-rw-r--r-- | test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.5/crtbegin.o | 0 | ||||
-rw-r--r-- | test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc64le-linux-gnu/.keep | 0 | ||||
-rw-r--r-- | test/Driver/arm-mfpu.c | 55 | ||||
-rw-r--r-- | test/Driver/bindings.c | 8 | ||||
-rw-r--r-- | test/Driver/cl-link.c | 8 | ||||
-rw-r--r-- | test/Driver/cl-x86-flags.c | 11 | ||||
-rw-r--r-- | test/Driver/darwin-debug-flags.c | 2 | ||||
-rw-r--r-- | test/Driver/darwin-dsymutil.c | 2 | ||||
-rw-r--r-- | test/Driver/darwin-sdkroot.c | 36 | ||||
-rw-r--r-- | test/Driver/darwin-verify-debug.c | 2 | ||||
-rw-r--r-- | test/Driver/fsanitize.c | 24 | ||||
-rw-r--r-- | test/Driver/integrated-as.s | 3 | ||||
-rw-r--r-- | test/Driver/ios-version-min.c | 7 | ||||
-rw-r--r-- | test/Driver/linux-ld.c | 13 | ||||
-rw-r--r-- | test/Driver/lit.local.cfg | 12 | ||||
-rw-r--r-- | test/Driver/msan.c | 12 | ||||
-rw-r--r-- | test/Driver/pic.c | 6 |
18 files changed, 187 insertions, 14 deletions
diff --git a/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc64le-linux-gnu/.keep b/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc64le-linux-gnu/.keep new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc64le-linux-gnu/.keep diff --git a/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.5/crtbegin.o b/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.5/crtbegin.o new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.5/crtbegin.o diff --git a/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc64le-linux-gnu/.keep b/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc64le-linux-gnu/.keep new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc64le-linux-gnu/.keep diff --git a/test/Driver/arm-mfpu.c b/test/Driver/arm-mfpu.c index 8439cddf9d7f..93fb0a8eb436 100644 --- a/test/Driver/arm-mfpu.c +++ b/test/Driver/arm-mfpu.c @@ -34,6 +34,17 @@ // CHECK-VFP3: "-target-feature" "-fp-armv8" // CHECK-VFP3: "-target-feature" "-neon" +// RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-fp16 %s -### -o %t.o 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-VFP3-FP16 %s +// CHECK-VFP3-FP16: "-target-feature" "-fp-only-sp" +// CHECK-VFP3-FP16: "-target-feature" "-d16" +// CHECK-VFP3-FP16: "-target-feature" "+vfp3" +// CHECK-VFP3-FP16: "-target-feature" "+fp16" +// CHECK-VFP3-FP16: "-target-feature" "-vfp4" +// CHECK-VFP3-FP16: "-target-feature" "-fp-armv8" +// CHECK-VFP3-FP16: "-target-feature" "-neon" +// CHECK-VFP3-FP16: "-target-feature" "-crypto" + // RUN: %clang -target arm-linux-eabi -mfpu=vfp3-d16 %s -### -o %t.o 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-VFP3-D16 %s // RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-d16 %s -### -o %t.o 2>&1 \ @@ -45,6 +56,39 @@ // CHECK-VFP3-D16: "-target-feature" "-fp-armv8" // CHECK-VFP3-D16: "-target-feature" "-neon" +// RUN: %clang -target arm-linux-eabi -mfpu=vfpv3-d16-fp16 %s -### -o %t.o 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-VFP3-D16-FP16 %s +// CHECK-VFP3-D16-FP16: "-target-feature" "-fp-only-sp" +// CHECK-VFP3-D16-FP16: "-target-feature" "+d16" +// CHECK-VFP3-D16-FP16: "-target-feature" "+vfp3" +// CHECK-VFP3-D16-FP16: "-target-feature" "+fp16" +// CHECK-VFP3-D16-FP16: "-target-feature" "-vfp4" +// CHECK-VFP3-D16-FP16: "-target-feature" "-fp-armv8" +// CHECK-VFP3-D16-FP16: "-target-feature" "-neon" +// CHECK-VFP3-D16-FP16: "-target-feature" "-crypto" + +// RUN: %clang -target arm-linux-eabi -mfpu=vfpv3xd %s -### -o %t.o 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-VFP3XD %s +// CHECK-VFP3XD: "-target-feature" "+fp-only-sp" +// CHECK-VFP3XD: "-target-feature" "+d16" +// CHECK-VFP3XD: "-target-feature" "+vfp3" +// CHECK-VFP3XD: "-target-feature" "-fp16" +// CHECK-VFP3XD: "-target-feature" "-vfp4" +// CHECK-VFP3XD: "-target-feature" "-fp-armv8" +// CHECK-VFP3XD: "-target-feature" "-neon" +// CHECK-VFP3XD: "-target-feature" "-crypto" + +// RUN: %clang -target arm-linux-eabi -mfpu=vfpv3xd-fp16 %s -### -o %t.o 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-VFP3XD-FP16 %s +// CHECK-VFP3XD-FP16: "-target-feature" "+fp-only-sp" +// CHECK-VFP3XD-FP16: "-target-feature" "+d16" +// CHECK-VFP3XD-FP16: "-target-feature" "+vfp3" +// CHECK-VFP3XD-FP16: "-target-feature" "+fp16" +// CHECK-VFP3XD-FP16: "-target-feature" "-vfp4" +// CHECK-VFP3XD-FP16: "-target-feature" "-fp-armv8" +// CHECK-VFP3XD-FP16: "-target-feature" "-neon" +// CHECK-VFP3XD-FP16: "-target-feature" "-crypto" + // RUN: %clang -target arm-linux-eabi -mfpu=vfp4 %s -### -o %t.o 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-VFP4 %s // RUN: %clang -target arm-linux-eabi -mfpu=vfpv4 %s -### -o %t.o 2>&1 \ @@ -97,6 +141,17 @@ // RUN: | FileCheck --check-prefix=CHECK-NEON %s // CHECK-NEON: "-target-feature" "+neon" +// RUN: %clang -target arm-linux-eabi -mfpu=neon-fp16 %s -### -o %t.o 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-NEON-FP16 %s +// CHECK-NEON-FP16: "-target-feature" "-fp-only-sp" +// CHECK-NEON-FP16: "-target-feature" "-d16" +// CHECK-NEON-FP16: "-target-feature" "+vfp3" +// CHECK-NEON-FP16: "-target-feature" "+fp16" +// CHECK-NEON-FP16: "-target-feature" "-vfp4" +// CHECK-NEON-FP16: "-target-feature" "-fp-armv8" +// CHECK-NEON-FP16: "-target-feature" "+neon" +// CHECK-NEON-FP16: "-target-feature" "-crypto" + // RUN: %clang -target arm-linux-eabi -mfpu=neon-vfpv3 %s -### -o %t.o 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-NEON-VFPV3 %s // CHECK-NEON-VFPV3: "-target-feature" "+neon" diff --git a/test/Driver/bindings.c b/test/Driver/bindings.c index dd8ad14f6725..880667b73934 100644 --- a/test/Driver/bindings.c +++ b/test/Driver/bindings.c @@ -1,8 +1,8 @@ // Basic binding. // RUN: %clang -target i386-unknown-unknown -ccc-print-bindings -no-integrated-as %s 2>&1 | FileCheck %s --check-prefix=CHECK01 // CHECK01: "clang", inputs: ["{{.*}}bindings.c"], output: "{{.*}}.s" -// CHECK01: "GNU::Assemble", inputs: ["{{.*}}.s"], output: "{{.*}}.o" -// CHECK01: "gcc::Link", inputs: ["{{.*}}.o"], output: "a.out" +// CHECK01: "GNU::Assembler", inputs: ["{{.*}}.s"], output: "{{.*}}.o" +// CHECK01: "gcc::Linker", inputs: ["{{.*}}.o"], output: "a.out" // Clang control options @@ -21,5 +21,5 @@ // Darwin bindings // RUN: %clang -target i386-apple-darwin9 -no-integrated-as -ccc-print-bindings %s 2>&1 | FileCheck %s --check-prefix=CHECK14 // CHECK14: "clang", inputs: ["{{.*}}bindings.c"], output: "{{.*}}.s" -// CHECK14: "darwin::Assemble", inputs: ["{{.*}}.s"], output: "{{.*}}.o" -// CHECK14: "darwin::Link", inputs: ["{{.*}}.o"], output: "a.out" +// CHECK14: "darwin::Assembler", inputs: ["{{.*}}.s"], output: "{{.*}}.o" +// CHECK14: "darwin::Linker", inputs: ["{{.*}}.o"], output: "a.out" diff --git a/test/Driver/cl-link.c b/test/Driver/cl-link.c index 5bd200117967..8572b77a740f 100644 --- a/test/Driver/cl-link.c +++ b/test/Driver/cl-link.c @@ -11,7 +11,7 @@ // LINK: "bar" // LINK: "baz" -// RUN: %clang_cl /Tc%s -### -fsanitize=address 2>&1 | FileCheck --check-prefix=ASAN %s +// RUN: %clang_cl -m32 -arch:IA32 --target=i386-pc-win32 /Tc%s -### -fsanitize=address 2>&1 | FileCheck --check-prefix=ASAN %s // ASAN: link.exe // ASAN: "-debug" // ASAN: "-incremental:no" @@ -19,7 +19,7 @@ // ASAN: "{{.*}}clang_rt.asan_cxx-i386.lib" // ASAN: "{{.*}}cl-link{{.*}}.obj" -// RUN: %clang_cl /MD /Tc%s -### -fsanitize=address 2>&1 | FileCheck --check-prefix=ASAN-MD %s +// RUN: %clang_cl -m32 -arch:IA32 --target=i386-pc-win32 /MD /Tc%s -### -fsanitize=address 2>&1 | FileCheck --check-prefix=ASAN-MD %s // ASAN-MD: link.exe // ASAN-MD: "-debug" // ASAN-MD: "-incremental:no" @@ -33,8 +33,8 @@ // DLL: link.exe // "-dll" -// RUN: %clang_cl /LD /Tc%s -### -fsanitize=address 2>&1 | FileCheck --check-prefix=ASAN-DLL %s -// RUN: %clang_cl /LDd /Tc%s -### -fsanitize=address 2>&1 | FileCheck --check-prefix=ASAN-DLL %s +// RUN: %clang_cl -m32 -arch:IA32 --target=i386-pc-win32 /LD /Tc%s -### -fsanitize=address 2>&1 | FileCheck --check-prefix=ASAN-DLL %s +// RUN: %clang_cl -m32 -arch:IA32 --target=i386-pc-win32 /LDd /Tc%s -### -fsanitize=address 2>&1 | FileCheck --check-prefix=ASAN-DLL %s // ASAN-DLL: link.exe // ASAN-DLL: "-dll" // ASAN-DLL: "-debug" diff --git a/test/Driver/cl-x86-flags.c b/test/Driver/cl-x86-flags.c index 5aae4c41d019..d4f7fb585975 100644 --- a/test/Driver/cl-x86-flags.c +++ b/test/Driver/cl-x86-flags.c @@ -8,10 +8,10 @@ // RUN: --target=i386-pc-win32 -### -- 2>&1 %s | FileCheck -check-prefix=MFLAGS %s // MFLAGS-NOT: argument unused during compilation -// -arch:IA32 is no-op. // RUN: %clang_cl -m32 -arch:IA32 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=IA32 %s -// IA32-NOT: argument unused during compilation +// IA32: "-target-cpu" "i386" // IA32-NOT: -target-feature +// IA32-NOT: argument unused during compilation // RUN: %clang_cl -m32 -arch:ia32 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=ia32 %s // ia32: argument unused during compilation @@ -22,6 +22,7 @@ // IA3264-NOT: -target-feature // RUN: %clang_cl -m32 -arch:SSE --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=SSE %s +// SSE: "-target-cpu" "pentium3" // SSE: -target-feature // SSE: +sse // SSE-NOT: argument unused during compilation @@ -31,6 +32,7 @@ // sse-NOT: -target-feature // RUN: %clang_cl -m32 -arch:SSE2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=SSE2 %s +// SSE2: "-target-cpu" "pentium4" // SSE2: -target-feature // SSE2: +sse2 // SSE2-NOT: argument unused during compilation @@ -42,12 +44,14 @@ // RUN: %clang_cl -m64 -arch:SSE --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=SSE64 %s // SSE64: argument unused during compilation // SSE64-NOT: -target-feature +// SSE64-NOT: pentium3 // RUN: %clang_cl -m64 -arch:SSE2 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=SSE264 %s // SSE264: argument unused during compilation // SSE264-NOT: -target-feature // RUN: %clang_cl -m32 -arch:AVX --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=AVX %s +// AVX: "-target-cpu" "sandybridge" // AVX: -target-feature // AVX: +avx @@ -56,6 +60,7 @@ // avx-NOT: -target-feature // RUN: %clang_cl -m32 -arch:AVX2 --target=i386 -### -- 2>&1 %s | FileCheck -check-prefix=AVX2 %s +// AVX2: "-target-cpu" "haswell" // AVX2: -target-feature // AVX2: +avx2 @@ -64,6 +69,7 @@ // avx2-NOT: -target-feature // RUN: %clang_cl -m64 -arch:AVX --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=AVX64 %s +// AVX64: "-target-cpu" "sandybridge" // AVX64: -target-feature // AVX64: +avx @@ -72,6 +78,7 @@ // avx64-NOT: -target-feature // RUN: %clang_cl -m64 -arch:AVX2 --target=x86_64 -### -- 2>&1 %s | FileCheck -check-prefix=AVX264 %s +// AVX264: "-target-cpu" "haswell" // AVX264: -target-feature // AVX264: +avx2 diff --git a/test/Driver/darwin-debug-flags.c b/test/Driver/darwin-debug-flags.c index 17b0bba17c6b..5080a59e943d 100644 --- a/test/Driver/darwin-debug-flags.c +++ b/test/Driver/darwin-debug-flags.c @@ -5,7 +5,7 @@ // <rdar://problem/12955296> // RUN: %clang -### -target i386-apple-darwin9 -c -g %t.s 2>&1 | FileCheck -check-prefix=P %s -// CHECK: !0 = !DICompileUnit( +// CHECK: !0 = distinct !DICompileUnit( // CHECK-SAME: flags: // CHECK-SAME: -I path\5C with\5C \5C\5Cspaces // CHECK-SAME: -g -Os diff --git a/test/Driver/darwin-dsymutil.c b/test/Driver/darwin-dsymutil.c index 0e2c4907104e..09451a81b797 100644 --- a/test/Driver/darwin-dsymutil.c +++ b/test/Driver/darwin-dsymutil.c @@ -28,7 +28,7 @@ // RUN: -o foo %s -g 2> %t // RUN: FileCheck -check-prefix=CHECK-OUTPUT-NAME < %t %s // -// CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::Link", inputs: [{{.*}}], output: "foo" +// CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::Linker", inputs: [{{.*}}], output: "foo" // CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::Dsymutil", inputs: ["foo"], output: "foo.dSYM" // Check that we only use dsymutil when needed. diff --git a/test/Driver/darwin-sdkroot.c b/test/Driver/darwin-sdkroot.c index 58bc683320ff..3d2a413a6370 100644 --- a/test/Driver/darwin-sdkroot.c +++ b/test/Driver/darwin-sdkroot.c @@ -40,3 +40,39 @@ // env SDKROOT=/ cmd //c echo %SDKROOT% // // This test passes using env.exe from GnuWin32. + +// Check if clang set the correct deployment target from -sysroot +// +// RUN: rm -rf %t/SDKs/iPhoneOS8.0.0.sdk +// RUN: mkdir -p %t/SDKs/iPhoneOS8.0.0.sdk +// RUN: env SDKROOT=%t/SDKs/iPhoneOS8.0.0.sdk %clang -target arm64-apple-darwin %s -### 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-IPHONE %s +// +// CHECK-IPHONE: clang +// CHECK-IPHONE: "-cc1" +// CHECK-IPHONE: "-triple" "arm64-apple-ios8.0.0" +// CHECK-IPHONE: ld +// CHECK-IPHONE: "-iphoneos_version_min" "8.0.0" +// +// +// RUN: rm -rf %t/SDKs/iPhoneSimulator8.0.sdk +// RUN: mkdir -p %t/SDKs/iPhoneSimulator8.0.sdk +// RUN: env SDKROOT=%t/SDKs/iPhoneSimulator8.0.sdk %clang -target x86_64-apple-darwin %s -### 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-SIMULATOR %s +// +// CHECK-SIMULATOR: clang +// CHECK-SIMULATOR: "-cc1" +// CHECK-SIMULATOR: "-triple" "x86_64-apple-ios8.0.0" +// CHECK-SIMULATOR: ld +// CHECK-SIMULATOR: "-ios_simulator_version_min" "8.0.0" +// +// RUN: rm -rf %t/SDKs/MacOSX10.10.0.sdk +// RUN: mkdir -p %t/SDKs/MacOSX10.10.0.sdk +// RUN: env SDKROOT=%t/SDKs/MacOSX10.10.0.sdk %clang -target x86_64-apple-darwin %s -### 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-MACOSX %s +// +// CHECK-MACOSX: clang +// CHECK-MACOSX: "-cc1" +// CHECK-MACOSX: "-triple" "x86_64-apple-macosx10.10.0" +// CHECK-MACOSX: ld +// CHECK-MACOSX: "-macosx_version_min" "10.10.0" diff --git a/test/Driver/darwin-verify-debug.c b/test/Driver/darwin-verify-debug.c index ebbf89a4d636..6b91290866a4 100644 --- a/test/Driver/darwin-verify-debug.c +++ b/test/Driver/darwin-verify-debug.c @@ -21,7 +21,7 @@ // RUN: --verify-debug-info -o foo %s -g 2> %t // RUN: FileCheck -check-prefix=CHECK-OUTPUT-NAME < %t %s // -// CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::Link", inputs: [{{.*}}], output: "foo" +// CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::Linker", inputs: [{{.*}}], output: "foo" // CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::Dsymutil", inputs: ["foo"], output: "foo.dSYM" // CHECK-OUTPUT-NAME: "x86_64-apple-darwin10" - "darwin::VerifyDebug", inputs: ["foo.dSYM"], output: (nothing) diff --git a/test/Driver/fsanitize.c b/test/Driver/fsanitize.c index bac12dc7fb5f..96d078101695 100644 --- a/test/Driver/fsanitize.c +++ b/test/Driver/fsanitize.c @@ -11,11 +11,20 @@ // CHECK-UNDEFINED: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|function|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|vptr|object-size|float-cast-overflow|array-bounds|enum|bool|returns-nonnull-attribute|nonnull-attribute),?){19}"}} // RUN: %clang -target x86_64-apple-darwin10 -fsanitize=undefined %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-DARWIN -// CHECK-UNDEFINED-DARWIN: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|vptr|object-size|float-cast-overflow|array-bounds|enum|bool|returns-nonnull-attribute|nonnull-attribute),?){18}"}} +// CHECK-UNDEFINED-DARWIN: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|object-size|float-cast-overflow|array-bounds|enum|bool|returns-nonnull-attribute|nonnull-attribute),?){17}"}} // RUN: %clang -target i386-unknown-openbsd -fsanitize=undefined %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-OPENBSD // CHECK-UNDEFINED-OPENBSD: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|object-size|float-cast-overflow|array-bounds|enum|bool|returns-nonnull-attribute|nonnull-attribute),?){17}"}} +// RUN: %clang -target i386-pc-win32 -fsanitize=undefined %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-WIN --check-prefix=CHECK-UNDEFINED-WIN32 +// RUN: %clang -target i386-pc-win32 -fsanitize=undefined -x c++ %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-WIN --check-prefix=CHECK-UNDEFINED-WIN32 --check-prefix=CHECK-UNDEFINED-WIN-CXX +// RUN: %clang -target x86_64-pc-win32 -fsanitize=undefined %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-WIN --check-prefix=CHECK-UNDEFINED-WIN64 +// RUN: %clang -target x86_64-pc-win32 -fsanitize=undefined -x c++ %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-WIN --check-prefix=CHECK-UNDEFINED-WIN64 --check-prefix=CHECK-UNDEFINED-WIN-CXX +// CHECK-UNDEFINED-WIN: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|object-size|float-cast-overflow|array-bounds|enum|bool|returns-nonnull-attribute|nonnull-attribute),?){17}"}} +// CHECK-UNDEFINED-WIN32-SAME: "--dependent-lib={{[^"]*}}ubsan_standalone-i386.lib" +// CHECK-UNDEFINED-WIN64-SAME: "--dependent-lib={{[^"]*}}ubsan_standalone-x86_64.lib" +// CHECK-UNDEFINED-WIN-CXX-SAME: "--dependent-lib={{[^"]*}}ubsan_standalone_cxx{{[^"]*}}.lib" + // RUN: %clang -target x86_64-linux-gnu -fsanitize=integer %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-INTEGER // CHECK-INTEGER: "-fsanitize={{((signed-integer-overflow|unsigned-integer-overflow|integer-divide-by-zero|shift-base|shift-exponent),?){5}"}} @@ -205,6 +214,12 @@ // RUN: %clang -target x86_64-apple-darwin10 -fsanitize=function -fsanitize=undefined %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-FSAN-UBSAN-DARWIN // CHECK-FSAN-UBSAN-DARWIN: unsupported option '-fsanitize=function' for target 'x86_64-apple-darwin10' +// RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.8 -fsanitize=vptr %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-VPTR-DARWIN-OLD +// CHECK-VPTR-DARWIN-OLD: unsupported option '-fsanitize=vptr' for target 'x86_64-apple-darwin10' + +// RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.9 -fsanitize=alignment,vptr %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-VPTR-DARWIN-NEW +// CHECK-VPTR-DARWIN-NEW: -fsanitize=alignment,vptr + // RUN: %clang -target armv7-apple-ios7 -miphoneos-version-min=7.0 -fsanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-IOS // CHECK-ASAN-IOS: unsupported option '-fsanitize=address' for target 'arm-apple-ios7' @@ -228,6 +243,9 @@ // RUN: %clang -target x86_64-linux-gnu -fsanitize-trap=address -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-TRAP // CHECK-ASAN-TRAP: error: unsupported argument 'address' to option '-fsanitize-trap' +// RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.7 -flto -fsanitize=cfi-vcall -fno-sanitize-trap=cfi -c %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-CFI-NOTRAP-OLD-MACOS +// CHECK-CFI-NOTRAP-OLD-MACOS: error: unsupported option '-fno-sanitize-trap=cfi-vcall' for target 'x86_64-apple-darwin10' + // RUN: %clang_cl -fsanitize=address -c -MDd -### -- %s 2>&1 | FileCheck %s -check-prefix=CHECK-ASAN-DEBUGRTL // RUN: %clang_cl -fsanitize=address -c -MTd -### -- %s 2>&1 | FileCheck %s -check-prefix=CHECK-ASAN-DEBUGRTL // RUN: %clang_cl -fsanitize=address -c -LDd -### -- %s 2>&1 | FileCheck %s -check-prefix=CHECK-ASAN-DEBUGRTL @@ -257,3 +275,7 @@ // SP: "-fsanitize=safe-stack" // SP-ASAN-NOT: stack-protector // SP-ASAN: "-fsanitize=address,safe-stack" + +// RUN: %clang -target powerpc64-unknown-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-SANM +// RUN: %clang -target powerpc64le-unknown-linux-gnu -fsanitize=memory %s -### 2>&1 | FileCheck %s -check-prefix=CHECK-SANM +// CHECK-SANM: "-fsanitize=memory" diff --git a/test/Driver/integrated-as.s b/test/Driver/integrated-as.s index 9a7d2c5dfef4..181f790a1f99 100644 --- a/test/Driver/integrated-as.s +++ b/test/Driver/integrated-as.s @@ -43,3 +43,6 @@ // RUN: %clang -### -c -integrated-as %s -Wa,-gdwarf-2 2>&1 | FileCheck --check-prefix=DWARF2WA %s // DWARF2WA: "-gdwarf-2" + +// RUN: %clang -### -x assembler -c -integrated-as %s -I myincludedir 2>&1 | FileCheck --check-prefix=INCLUDEPATH %s +// INCLUDEPATH: "-I" "myincludedir" diff --git a/test/Driver/ios-version-min.c b/test/Driver/ios-version-min.c new file mode 100644 index 000000000000..aa536cf7827b --- /dev/null +++ b/test/Driver/ios-version-min.c @@ -0,0 +1,7 @@ +// REQUIRES: x86-registered-target +// REQUIRES: arm-registered-target +// RUN: %clang -target i386-apple-darwin10 -miphonesimulator-version-min=7.0 -arch i386 -S -o - %s | FileCheck %s +// RUN: %clang -target armv7s-apple-darwin10 -miphoneos-version-min=7.0 -arch armv7s -S -o - %s | FileCheck %s + +int main() { return 0; } +// CHECK: .ios_version_min 7, 0 diff --git a/test/Driver/linux-ld.c b/test/Driver/linux-ld.c index 5c4778be8cf5..5e865a953c7c 100644 --- a/test/Driver/linux-ld.c +++ b/test/Driver/linux-ld.c @@ -817,6 +817,19 @@ // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib" // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: --target=powerpc64le-linux-gnu \ +// RUN: --gcc-toolchain="" \ +// RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ +// RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64LE %s +// CHECK-DEBIAN-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" +// CHECK-DEBIAN-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.5{{/|\\\\}}crtbegin.o" +// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5" +// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5/../../../powerpc64le-linux-gnu" +// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu" +// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5/../../.." +// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/lib" +// CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib" +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: --target=powerpc64-linux-gnu \ // RUN: --gcc-toolchain="" \ // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ diff --git a/test/Driver/lit.local.cfg b/test/Driver/lit.local.cfg index af6d02139069..6c2373bd2178 100644 --- a/test/Driver/lit.local.cfg +++ b/test/Driver/lit.local.cfg @@ -4,3 +4,15 @@ config.substitutions = list(config.substitutions) config.substitutions.insert(0, ('%clang_cc1', """*** Do not use 'clang -cc1' in Driver tests. ***""") ) + +# Remove harmful environmental variables for clang Driver tests. +# Some might be useful for other tests so they are only removed here. +driver_overwrite_env_vars = ['MACOSX_DEPLOYMENT_TARGET', + 'IPHONEOS_DEPLOYMENT_TARGET', + 'SDKROOT', 'CCC_OVERRIDE_OPTIONS', + 'CC_PRINT_OPTIONS', 'CC_PRINT_HEADERS', + 'CC_LOG_DIAGNOSTICS'] + +for name in driver_overwrite_env_vars: + if name in config.environment: + del config.environment[name] diff --git a/test/Driver/msan.c b/test/Driver/msan.c new file mode 100644 index 000000000000..22f7471510ad --- /dev/null +++ b/test/Driver/msan.c @@ -0,0 +1,12 @@ +// RUN: %clang -target x86_64-unknown-linux -fsanitize=memory %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -O1 -target x86_64-unknown-linux -fsanitize=memory %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -O2 -target x86_64-unknown-linux -fsanitize=memory %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -O3 -target x86_64-unknown-linux -fsanitize=memory %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -target mips64-linux-gnu -fsanitize=memory %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -target mips64el-unknown-linux-gnu -fsanitize=memory %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -target powerpc64-unknown-linux-gnu -fsanitize=memory %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -target powerpc64le-unknown-linux-gnu -fsanitize=memory %s -S -emit-llvm -o - | FileCheck %s +// Verify that -fsanitize=memory invokes msan instrumentation. + +int foo(int *a) { return *a; } +// CHECK: __msan_init diff --git a/test/Driver/pic.c b/test/Driver/pic.c index a515f8117a1d..120e66a92ac4 100644 --- a/test/Driver/pic.c +++ b/test/Driver/pic.c @@ -242,3 +242,9 @@ // RUN: | FileCheck %s --check-prefix=CHECK-PIC1 // RUN: %clang -c %s -target arm64-linux-android -### 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-PIC1 +// +// On Windows-X64 PIC is enabled by default +// RUN: %clang -c %s -target x86_64-pc-windows-msvc18.0.0 -### 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-PIC2 +// RUN: %clang -c %s -target x86_64-pc-windows-gnu -### 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-PIC2 |