xref: /aosp_15_r20/external/clang/test/Driver/save-temps.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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