1*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -save-temps -arch x86_64 %s -### 2>&1 \ 2*67e74705SXin Li // RUN: | FileCheck %s 3*67e74705SXin Li // CHECK: "-o" "save-temps.i" 4*67e74705SXin Li // CHECK: "-emit-llvm-uselists" 5*67e74705SXin Li // CHECK: "-disable-llvm-passes" 6*67e74705SXin Li // CHECK: "-o" "save-temps.bc" 7*67e74705SXin Li // CHECK: "-o" "save-temps.s" 8*67e74705SXin Li // CHECK: "-o" "save-temps.o" 9*67e74705SXin Li // CHECK: "-o" "a.out" 10*67e74705SXin Li 11*67e74705SXin Li // Check -save-temps=cwd which should work the same as -save-temps above 12*67e74705SXin Li // 13*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -save-temps=cwd -arch x86_64 %s -### 2>&1 \ 14*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=CWD 15*67e74705SXin Li // CWD: "-o" "save-temps.i" 16*67e74705SXin Li // CWD: "-emit-llvm-uselists" 17*67e74705SXin Li // CWD: "-disable-llvm-passes" 18*67e74705SXin Li // CWD: "-o" "save-temps.bc" 19*67e74705SXin Li // CWD: "-o" "save-temps.s" 20*67e74705SXin Li // CWD: "-o" "save-temps.o" 21*67e74705SXin Li // CWD: "-o" "a.out" 22*67e74705SXin Li 23*67e74705SXin Li // Check for a single clang cc1 invocation when NOT using -save-temps. 24*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -arch x86_64 -S %s -### 2>&1 \ 25*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=NO-TEMPS 26*67e74705SXin Li // NO-TEMPS: "-cc1" 27*67e74705SXin Li // NO-TEMPS: "-S" 28*67e74705SXin Li // NO-TEMPS: "-x" "c" 29*67e74705SXin Li 30*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -save-temps -arch i386 -arch x86_64 %s -### 2>&1 \ 31*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=MULT-ARCH 32*67e74705SXin Li // MULT-ARCH: "-o" "save-temps-i386.i" 33*67e74705SXin Li // MULT-ARCH: "-o" "save-temps-i386.bc" 34*67e74705SXin Li // MULT-ARCH: "-o" "save-temps-i386.s" 35*67e74705SXin Li // MULT-ARCH: "-o" "save-temps-i386.o" 36*67e74705SXin Li // MULT-ARCH: "-o" "a.out-i386" 37*67e74705SXin Li // MULT-ARCH: "-o" "save-temps-x86_64.i" 38*67e74705SXin Li // MULT-ARCH: "-o" "save-temps-x86_64.bc" 39*67e74705SXin Li // MULT-ARCH: "-o" "save-temps-x86_64.s" 40*67e74705SXin Li // MULT-ARCH: "-o" "save-temps-x86_64.o" 41*67e74705SXin Li // MULT-ARCH: "-o" "a.out-x86_64" 42*67e74705SXin Li // MULT-ARCH: lipo 43*67e74705SXin Li // MULT-ARCH: "-create" "-output" "a.out" "a.out-i386" "a.out-x86_64" 44*67e74705SXin Li 45*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -save-temps=cwd -arch i386 -arch x86_64 %s -### 2>&1 \ 46*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=MULT-ARCH-CWD 47*67e74705SXin Li // MULT-ARCH-CWD: "-o" "save-temps-i386.i" 48*67e74705SXin Li // MULT-ARCH-CWD: "-o" "save-temps-i386.bc" 49*67e74705SXin Li // MULT-ARCH-CWD: "-o" "save-temps-i386.s" 50*67e74705SXin Li // MULT-ARCH-CWD: "-o" "save-temps-i386.o" 51*67e74705SXin Li // MULT-ARCH-CWD: "-o" "a.out-i386" 52*67e74705SXin Li // MULT-ARCH-CWD: "-o" "save-temps-x86_64.i" 53*67e74705SXin Li // MULT-ARCH-CWD: "-o" "save-temps-x86_64.bc" 54*67e74705SXin Li // MULT-ARCH-CWD: "-o" "save-temps-x86_64.s" 55*67e74705SXin Li // MULT-ARCH-CWD: "-o" "save-temps-x86_64.o" 56*67e74705SXin Li // MULT-ARCH-CWD: "-o" "a.out-x86_64" 57*67e74705SXin Li // MULT-ARCH-CWD: lipo 58*67e74705SXin Li // MULT-ARCH-CWD: "-create" "-output" "a.out" "a.out-i386" "a.out-x86_64" 59*67e74705SXin Li 60*67e74705SXin Li // Check that temp files are saved in the same directory as the output file 61*67e74705SXin Li // regardless of whether -o is specified. 62*67e74705SXin Li // 63*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -save-temps=obj -o obj/dir/a.out -arch x86_64 %s -### 2>&1 \ 64*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=CHECK-OBJ 65*67e74705SXin Li // CHECK-OBJ: "-o" "obj/dir{{/|\\\\}}save-temps.i" 66*67e74705SXin Li // CHECK-OBJ: "-disable-llvm-passes" 67*67e74705SXin Li // CHECK-OBJ: "-o" "obj/dir{{/|\\\\}}save-temps.bc" 68*67e74705SXin Li // CHECK-OBJ: "-o" "obj/dir{{/|\\\\}}save-temps.s" 69*67e74705SXin Li // CHECK-OBJ: "-o" "obj/dir{{/|\\\\}}save-temps.o" 70*67e74705SXin Li // CHECK-OBJ: "-o" "obj/dir{{/|\\\\}}a.out" 71*67e74705SXin Li // 72*67e74705SXin Li // RUN: %clang -target x86_64-apple-darwin -save-temps=obj -arch x86_64 %s -### 2>&1 \ 73*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=CHECK-OBJ-NOO 74*67e74705SXin Li // CHECK-OBJ-NOO: "-o" "save-temps.i" 75*67e74705SXin Li // CHECK-OBJ-NOO: "-disable-llvm-passes" 76*67e74705SXin Li // CHECK-OBJ-NOO: "-o" "save-temps.bc" 77*67e74705SXin Li // CHECK-OBJ-NOO: "-o" "save-temps.s" 78*67e74705SXin Li // CHECK-OBJ-NOO: "-o" "save-temps.o" 79*67e74705SXin Li // CHECK-OBJ-NOO: "-o" "a.out" 80*67e74705SXin Li 81*67e74705SXin Li // RUN: %clang -target i386-unknown-freebsd -save-temps -g -c %s -### 2>&1 \ 82*67e74705SXin Li // RUN: | FileCheck %s -check-prefix=CHECK-SAVE-TEMPS 83*67e74705SXin Li // CHECK-SAVE-TEMPS: "-cc1as" 84*67e74705SXin Li // CHECK-SAVE-TEMPS: "-dwarf-version={{.}}" 85