xref: /aosp_15_r20/external/clang/test/Driver/cl-outputs.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Note: %s must be preceded by --, otherwise it may be interpreted as a
2*67e74705SXin Li // command-line option, e.g. on Mac where %s is commonly under /Users.
3*67e74705SXin Li 
4*67e74705SXin Li // RUN: %clang_cl /c -### -- %s 2>&1 | FileCheck -check-prefix=DEFAULT %s
5*67e74705SXin Li // DEFAULT: "-o" "cl-outputs.obj"
6*67e74705SXin Li 
7*67e74705SXin Li // RUN: %clang_cl /Fo -### -- %s 2>&1 | FileCheck -check-prefix=FoEMPTY %s
8*67e74705SXin Li // FoEMPTY:  "-o" "cl-outputs.obj"
9*67e74705SXin Li 
10*67e74705SXin Li // RUN: %clang_cl /Foa -### -- %s 2>&1 | FileCheck -check-prefix=FoNAME %s
11*67e74705SXin Li // FoNAME:  "-o" "a.obj"
12*67e74705SXin Li 
13*67e74705SXin Li // RUN: %clang_cl /Foa.ext /Fob.ext -### -- %s 2>&1 | FileCheck -check-prefix=FoNAMEEXT %s
14*67e74705SXin Li // FoNAMEEXT:  "-o" "b.ext"
15*67e74705SXin Li 
16*67e74705SXin Li // RUN: %clang_cl /Fofoo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FoDIR %s
17*67e74705SXin Li // FoDIR:  "-o" "foo.dir{{[/\\]+}}cl-outputs.obj"
18*67e74705SXin Li 
19*67e74705SXin Li // RUN: %clang_cl /Fofoo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FoDIRNAME %s
20*67e74705SXin Li // FoDIRNAME:  "-o" "foo.dir{{[/\\]+}}a.obj"
21*67e74705SXin Li 
22*67e74705SXin Li // RUN: %clang_cl /Fofoo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FoDIRNAMEEXT %s
23*67e74705SXin Li // FoDIRNAMEEXT:  "-o" "foo.dir{{[/\\]+}}a.ext"
24*67e74705SXin Li 
25*67e74705SXin Li // RUN: %clang_cl /Fo.. -### -- %s 2>&1 | FileCheck -check-prefix=FoCRAZY %s
26*67e74705SXin Li // FoCRAZY:  "-o" "..obj"
27*67e74705SXin Li 
28*67e74705SXin Li // RUN: %clang_cl /Foa.obj -### -- %s %s 2>&1 | FileCheck -check-prefix=CHECK-MULTIPLESOURCEERROR %s
29*67e74705SXin Li // CHECK-MULTIPLESOURCEERROR: error: cannot specify '/Foa.obj' when compiling multiple source files
30*67e74705SXin Li 
31*67e74705SXin Li // RUN: %clang_cl /Fomydir/ -### -- %s %s 2>&1 | FileCheck -check-prefix=CHECK-MULTIPLESOURCEOK %s
32*67e74705SXin Li // CHECK-MULTIPLESOURCEOK: "-o" "mydir{{[/\\]+}}cl-outputs.obj"
33*67e74705SXin Li 
34*67e74705SXin Li // RUN: %clang_cl /Fo -### -- %s %s 2>&1 | FileCheck -check-prefix=CHECK-MULTIPLESOURCEOK2 %s
35*67e74705SXin Li // CHECK-MULTIPLESOURCEOK2: "-o" "cl-outputs.obj"
36*67e74705SXin Li // CHECK-MULTIPLESOURCEOK2: "-o" "cl-outputs.obj"
37*67e74705SXin Li 
38*67e74705SXin Li // RUN: %clang_cl /c /oa -### -- %s 2>&1 | FileCheck -check-prefix=oNAME1 %s
39*67e74705SXin Li // oNAME1:  "-o" "a.obj"
40*67e74705SXin Li 
41*67e74705SXin Li // RUN: %clang_cl /c /o a -### -- %s 2>&1 | FileCheck -check-prefix=oNAME2 %s
42*67e74705SXin Li // oNAME2:  "-o" "a.obj"
43*67e74705SXin Li 
44*67e74705SXin Li // RUN: %clang_cl /c /oa.ext /ob.ext -### -- %s 2>&1 | FileCheck -check-prefix=oNAMEEXT1 %s
45*67e74705SXin Li // oNAMEEXT1:  "-o" "b.ext"
46*67e74705SXin Li 
47*67e74705SXin Li // RUN: %clang_cl /c /o a.ext /ob.ext -### -- %s 2>&1 | FileCheck -check-prefix=oNAMEEXT2 %s
48*67e74705SXin Li // oNAMEEXT2:  "-o" "b.ext"
49*67e74705SXin Li 
50*67e74705SXin Li // RUN: %clang_cl /c /ofoo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=oDIR1 %s
51*67e74705SXin Li // oDIR1:  "-o" "foo.dir{{[/\\]+}}cl-outputs.obj"
52*67e74705SXin Li 
53*67e74705SXin Li // RUN: %clang_cl /c /o foo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=oDIR2 %s
54*67e74705SXin Li // oDIR2:  "-o" "foo.dir{{[/\\]+}}cl-outputs.obj"
55*67e74705SXin Li 
56*67e74705SXin Li // RUN: %clang_cl /c /ofoo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=oDIRNAME1 %s
57*67e74705SXin Li // oDIRNAME1:  "-o" "foo.dir{{[/\\]+}}a.obj"
58*67e74705SXin Li 
59*67e74705SXin Li // RUN: %clang_cl /c /o foo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=oDIRNAME2 %s
60*67e74705SXin Li // oDIRNAME2:  "-o" "foo.dir{{[/\\]+}}a.obj"
61*67e74705SXin Li 
62*67e74705SXin Li // RUN: %clang_cl /c /ofoo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=oDIRNAMEEXT1 %s
63*67e74705SXin Li // oDIRNAMEEXT1:  "-o" "foo.dir{{[/\\]+}}a.ext"
64*67e74705SXin Li 
65*67e74705SXin Li // RUN: %clang_cl /c /o foo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=oDIRNAMEEXT2 %s
66*67e74705SXin Li // oDIRNAMEEXT2:  "-o" "foo.dir{{[/\\]+}}a.ext"
67*67e74705SXin Li 
68*67e74705SXin Li // RUN: %clang_cl /c /o.. -### -- %s 2>&1 | FileCheck -check-prefix=oCRAZY1 %s
69*67e74705SXin Li // oCRAZY1:  "-o" "..obj"
70*67e74705SXin Li 
71*67e74705SXin Li // RUN: %clang_cl /c /o .. -### -- %s 2>&1 | FileCheck -check-prefix=oCRAZY2 %s
72*67e74705SXin Li // oCRAZY2:  "-o" "..obj"
73*67e74705SXin Li 
74*67e74705SXin Li // RUN: %clang_cl /c %s -### /o 2>&1 | FileCheck -check-prefix=oMISSINGARG %s
75*67e74705SXin Li // oMISSINGARG: error: argument to '/o' is missing (expected 1 value)
76*67e74705SXin Li 
77*67e74705SXin Li // RUN: %clang_cl /c /omydir/ -### -- %s %s 2>&1 | FileCheck -check-prefix=CHECK-oMULTIPLESOURCEOK1 %s
78*67e74705SXin Li // CHECK-oMULTIPLESOURCEOK1: "-o" "mydir{{[/\\]+}}cl-outputs.obj"
79*67e74705SXin Li 
80*67e74705SXin Li // RUN: %clang_cl /c /o mydir/ -### -- %s %s 2>&1 | FileCheck -check-prefix=CHECK-oMULTIPLESOURCEOK2 %s
81*67e74705SXin Li // CHECK-oMULTIPLESOURCEOK2: "-o" "mydir{{[/\\]+}}cl-outputs.obj"
82*67e74705SXin Li 
83*67e74705SXin Li 
84*67e74705SXin Li // RUN: %clang_cl /c /obar /Fofoo -### -- %s 2>&1 | FileCheck -check-prefix=FooRACE1 %s
85*67e74705SXin Li // FooRACE1: "-o" "foo.obj"
86*67e74705SXin Li 
87*67e74705SXin Li // RUN: %clang_cl /c /Fofoo /obar -### -- %s 2>&1 | FileCheck -check-prefix=FooRACE2 %s
88*67e74705SXin Li // FooRACE2: "-o" "bar.obj"
89*67e74705SXin Li 
90*67e74705SXin Li 
91*67e74705SXin Li // RUN: %clang_cl -### -- %s 2>&1 | FileCheck -check-prefix=DEFAULTEXE %s
92*67e74705SXin Li // DEFAULTEXE: cl-outputs.exe
93*67e74705SXin Li 
94*67e74705SXin Li // RUN: %clang_cl /LD -### -- %s 2>&1 | FileCheck -check-prefix=DEFAULTDLL %s
95*67e74705SXin Li // RUN: %clang_cl /LDd -### -- %s 2>&1 | FileCheck -check-prefix=DEFAULTDLL %s
96*67e74705SXin Li // DEFAULTDLL: "-out:cl-outputs.dll"
97*67e74705SXin Li // DEFAULTDLL: "-implib:cl-outputs.lib"
98*67e74705SXin Li 
99*67e74705SXin Li // RUN: %clang_cl /Fefoo -### -- %s 2>&1 | FileCheck -check-prefix=FeNOEXT %s
100*67e74705SXin Li // FeNOEXT: "-out:foo.exe"
101*67e74705SXin Li 
102*67e74705SXin Li // RUN: %clang_cl /Fe -### -- %s 2>&1 | FileCheck -check-prefix=FeEMPTY %s
103*67e74705SXin Li // FeEMPTY-NOT: argument to '/Fe' is missing
104*67e74705SXin Li // FeEMPTY: "-out:cl-outputs.exe"
105*67e74705SXin Li 
106*67e74705SXin Li // RUN: %clang_cl /Fefoo /LD -### -- %s 2>&1 | FileCheck -check-prefix=FeNOEXTDLL %s
107*67e74705SXin Li // RUN: %clang_cl /Fefoo /LDd -### -- %s 2>&1 | FileCheck -check-prefix=FeNOEXTDLL %s
108*67e74705SXin Li // FeNOEXTDLL: "-out:foo.dll"
109*67e74705SXin Li // FeNOEXTDLL: "-implib:foo.lib"
110*67e74705SXin Li 
111*67e74705SXin Li // RUN: %clang_cl /Fefoo.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeEXT %s
112*67e74705SXin Li // FeEXT: "-out:foo.ext"
113*67e74705SXin Li 
114*67e74705SXin Li // RUN: %clang_cl /LD /Fefoo.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeEXTDLL %s
115*67e74705SXin Li // RUN: %clang_cl /LDd /Fefoo.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeEXTDLL %s
116*67e74705SXin Li // FeEXTDLL: "-out:foo.ext"
117*67e74705SXin Li // FeEXTDLL: "-implib:foo.lib"
118*67e74705SXin Li 
119*67e74705SXin Li // RUN: %clang_cl /Fefoo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FeDIR %s
120*67e74705SXin Li // FeDIR: "-out:foo.dir{{[/\\]+}}cl-outputs.exe"
121*67e74705SXin Li 
122*67e74705SXin Li // RUN: %clang_cl /LD /Fefoo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FeDIRDLL %s
123*67e74705SXin Li // RUN: %clang_cl /LDd /Fefoo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FeDIRDLL %s
124*67e74705SXin Li // FeDIRDLL: "-out:foo.dir{{[/\\]+}}cl-outputs.dll"
125*67e74705SXin Li // FeDIRDLL: "-implib:foo.dir{{[/\\]+}}cl-outputs.lib"
126*67e74705SXin Li 
127*67e74705SXin Li // RUN: %clang_cl /Fefoo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FeDIRNAME %s
128*67e74705SXin Li // FeDIRNAME: "-out:foo.dir{{[/\\]+}}a.exe"
129*67e74705SXin Li 
130*67e74705SXin Li // RUN: %clang_cl /LD /Fefoo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FeDIRNAMEDLL %s
131*67e74705SXin Li // RUN: %clang_cl /LDd /Fefoo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FeDIRNAMEDLL %s
132*67e74705SXin Li // FeDIRNAMEDLL: "-out:foo.dir{{[/\\]+}}a.dll"
133*67e74705SXin Li // FeDIRNAMEDLL: "-implib:foo.dir{{[/\\]+}}a.lib"
134*67e74705SXin Li 
135*67e74705SXin Li // RUN: %clang_cl /Fefoo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeDIRNAMEEXT %s
136*67e74705SXin Li // FeDIRNAMEEXT: "-out:foo.dir{{[/\\]+}}a.ext"
137*67e74705SXin Li 
138*67e74705SXin Li // RUN: %clang_cl /LD /Fefoo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeDIRNAMEEXTDLL %s
139*67e74705SXin Li // RUN: %clang_cl /LDd /Fefoo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeDIRNAMEEXTDLL %s
140*67e74705SXin Li // FeDIRNAMEEXTDLL: "-out:foo.dir{{[/\\]+}}a.ext"
141*67e74705SXin Li // FeDIRNAMEEXTDLL: "-implib:foo.dir{{[/\\]+}}a.lib"
142*67e74705SXin Li 
143*67e74705SXin Li // RUN: %clang_cl /Fefoo /Febar -### -- %s 2>&1 | FileCheck -check-prefix=FeOVERRIDE %s
144*67e74705SXin Li // FeOVERRIDE: "-out:bar.exe"
145*67e74705SXin Li 
146*67e74705SXin Li 
147*67e74705SXin Li // RUN: %clang_cl /obar /Fefoo -### -- %s 2>&1 | FileCheck -check-prefix=FeoRACE1 %s
148*67e74705SXin Li // FeoRACE1: "-out:foo.exe"
149*67e74705SXin Li 
150*67e74705SXin Li // RUN: %clang_cl /Fefoo /obar -### -- %s 2>&1 | FileCheck -check-prefix=FeoRACE2 %s
151*67e74705SXin Li // FeoRACE2: "-out:bar.exe"
152*67e74705SXin Li 
153*67e74705SXin Li 
154*67e74705SXin Li // RUN: %clang_cl /ofoo -### -- %s 2>&1 | FileCheck -check-prefix=FeoNOEXT1 %s
155*67e74705SXin Li // FeoNOEXT1: "-out:foo.exe"
156*67e74705SXin Li 
157*67e74705SXin Li // RUN: %clang_cl /o foo -### -- %s 2>&1 | FileCheck -check-prefix=FeoNOEXT2 %s
158*67e74705SXin Li // FeoNOEXT2: "-out:foo.exe"
159*67e74705SXin Li 
160*67e74705SXin Li // RUN: %clang_cl /o foo /LD -### -- %s 2>&1 | FileCheck -check-prefix=FeoNOEXTDLL %s
161*67e74705SXin Li // RUN: %clang_cl /ofoo /LDd -### -- %s 2>&1 | FileCheck -check-prefix=FeoNOEXTDLL %s
162*67e74705SXin Li // FeoNOEXTDLL: "-out:foo.dll"
163*67e74705SXin Li // FeoNOEXTDLL: "-implib:foo.lib"
164*67e74705SXin Li 
165*67e74705SXin Li // RUN: %clang_cl /ofoo.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeoEXT1 %s
166*67e74705SXin Li // FeoEXT1: "-out:foo.ext"
167*67e74705SXin Li 
168*67e74705SXin Li // RUN: %clang_cl /o foo.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeoEXT2 %s
169*67e74705SXin Li // FeoEXT2: "-out:foo.ext"
170*67e74705SXin Li 
171*67e74705SXin Li // RUN: %clang_cl /LD /o foo.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeoEXTDLL %s
172*67e74705SXin Li // RUN: %clang_cl /LDd /ofoo.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeoEXTDLL %s
173*67e74705SXin Li // FeoEXTDLL: "-out:foo.ext"
174*67e74705SXin Li // FeoEXTDLL: "-implib:foo.lib"
175*67e74705SXin Li 
176*67e74705SXin Li // RUN: %clang_cl /ofoo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIR1 %s
177*67e74705SXin Li // FeoDIR1: "-out:foo.dir{{[/\\]+}}cl-outputs.exe"
178*67e74705SXin Li 
179*67e74705SXin Li // RUN: %clang_cl /o foo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIR2 %s
180*67e74705SXin Li // FeoDIR2: "-out:foo.dir{{[/\\]+}}cl-outputs.exe"
181*67e74705SXin Li 
182*67e74705SXin Li // RUN: %clang_cl /LD /o foo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRDLL %s
183*67e74705SXin Li // RUN: %clang_cl /LDd /ofoo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRDLL %s
184*67e74705SXin Li // FeoDIRDLL: "-out:foo.dir{{[/\\]+}}cl-outputs.dll"
185*67e74705SXin Li // FeoDIRDLL: "-implib:foo.dir{{[/\\]+}}cl-outputs.lib"
186*67e74705SXin Li 
187*67e74705SXin Li // RUN: %clang_cl /ofoo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRNAME1 %s
188*67e74705SXin Li // FeoDIRNAME1: "-out:foo.dir{{[/\\]+}}a.exe"
189*67e74705SXin Li 
190*67e74705SXin Li // RUN: %clang_cl /o foo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRNAME2 %s
191*67e74705SXin Li // FeoDIRNAME2: "-out:foo.dir{{[/\\]+}}a.exe"
192*67e74705SXin Li 
193*67e74705SXin Li // RUN: %clang_cl /LD /o foo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRNAMEDLL %s
194*67e74705SXin Li // RUN: %clang_cl /LDd /ofoo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRNAMEDLL %s
195*67e74705SXin Li // FeoDIRNAMEDLL: "-out:foo.dir{{[/\\]+}}a.dll"
196*67e74705SXin Li // FeoDIRNAMEDLL: "-implib:foo.dir{{[/\\]+}}a.lib"
197*67e74705SXin Li 
198*67e74705SXin Li // RUN: %clang_cl /ofoo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRNAMEEXT1 %s
199*67e74705SXin Li // FeoDIRNAMEEXT1: "-out:foo.dir{{[/\\]+}}a.ext"
200*67e74705SXin Li 
201*67e74705SXin Li // RUN: %clang_cl /o foo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRNAMEEXT2 %s
202*67e74705SXin Li // FeoDIRNAMEEXT2: "-out:foo.dir{{[/\\]+}}a.ext"
203*67e74705SXin Li 
204*67e74705SXin Li // RUN: %clang_cl /LD /o foo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRNAMEEXTDLL %s
205*67e74705SXin Li // RUN: %clang_cl /LDd /ofoo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FeoDIRNAMEEXTDLL %s
206*67e74705SXin Li // FeoDIRNAMEEXTDLL: "-out:foo.dir{{[/\\]+}}a.ext"
207*67e74705SXin Li // FeoDIRNAMEEXTDLL: "-implib:foo.dir{{[/\\]+}}a.lib"
208*67e74705SXin Li 
209*67e74705SXin Li // RUN: %clang_cl -### /o 2>&1 | FileCheck -check-prefix=FeoMISSINGARG %s
210*67e74705SXin Li // FeoMISSINGARG: error: argument to '/o' is missing (expected 1 value)
211*67e74705SXin Li 
212*67e74705SXin Li // RUN: %clang_cl /ofoo /o bar -### -- %s 2>&1 | FileCheck -check-prefix=FeoOVERRIDE %s
213*67e74705SXin Li // FeoOVERRIDE: "-out:bar.exe"
214*67e74705SXin Li 
215*67e74705SXin Li 
216*67e74705SXin Li // RUN: %clang_cl /FA -### -- %s 2>&1 | FileCheck -check-prefix=FA %s
217*67e74705SXin Li // FA: "-o" "cl-outputs.asm"
218*67e74705SXin Li // RUN: %clang_cl /FA /Fa -### -- %s 2>&1 | FileCheck -check-prefix=FaEMPTY %s
219*67e74705SXin Li // FaEMPTY: "-o" "cl-outputs.asm"
220*67e74705SXin Li // RUN: %clang_cl /FA /Fafoo -### -- %s 2>&1 | FileCheck -check-prefix=FaNAME %s
221*67e74705SXin Li // RUN: %clang_cl /Fafoo -### -- %s 2>&1 | FileCheck -check-prefix=FaNAME %s
222*67e74705SXin Li // FaNAME:  "-o" "foo.asm"
223*67e74705SXin Li // RUN: %clang_cl /FA /Faa.ext /Fab.ext -### -- %s 2>&1 | FileCheck -check-prefix=FaNAMEEXT %s
224*67e74705SXin Li // FaNAMEEXT:  "-o" "b.ext"
225*67e74705SXin Li // RUN: %clang_cl /FA /Fafoo.dir/ -### -- %s 2>&1 | FileCheck -check-prefix=FaDIR %s
226*67e74705SXin Li // FaDIR:  "-o" "foo.dir{{[/\\]+}}cl-outputs.asm"
227*67e74705SXin Li // RUN: %clang_cl /FA /Fafoo.dir/a -### -- %s 2>&1 | FileCheck -check-prefix=FaDIRNAME %s
228*67e74705SXin Li // FaDIRNAME:  "-o" "foo.dir{{[/\\]+}}a.asm"
229*67e74705SXin Li // RUN: %clang_cl /FA /Fafoo.dir/a.ext -### -- %s 2>&1 | FileCheck -check-prefix=FaDIRNAMEEXT %s
230*67e74705SXin Li // FaDIRNAMEEXT:  "-o" "foo.dir{{[/\\]+}}a.ext"
231*67e74705SXin Li // RUN: %clang_cl /Faa.asm -### -- %s %s 2>&1 | FileCheck -check-prefix=FaMULTIPLESOURCE %s
232*67e74705SXin Li // FaMULTIPLESOURCE: error: cannot specify '/Faa.asm' when compiling multiple source files
233*67e74705SXin Li // RUN: %clang_cl /Fa -### -- %s %s 2>&1 | FileCheck -check-prefix=FaMULTIPLESOURCEOK %s
234*67e74705SXin Li // FaMULTIPLESOURCEOK: "-o" "cl-outputs.asm"
235*67e74705SXin Li // FaMULTIPLESOURCEOK: "-o" "cl-outputs.asm"
236*67e74705SXin Li 
237*67e74705SXin Li // RUN: %clang_cl /P -### -- %s 2>&1 | FileCheck -check-prefix=P %s
238*67e74705SXin Li // P: "-E"
239*67e74705SXin Li // P: "-o" "cl-outputs.i"
240*67e74705SXin Li 
241*67e74705SXin Li // RUN: %clang_cl /P /Fifoo -### -- %s 2>&1 | FileCheck -check-prefix=Fi1 %s
242*67e74705SXin Li // Fi1: "-E"
243*67e74705SXin Li // Fi1: "-o" "foo.i"
244*67e74705SXin Li 
245*67e74705SXin Li // RUN: %clang_cl /P /Fifoo.x -### -- %s 2>&1 | FileCheck -check-prefix=Fi2 %s
246*67e74705SXin Li // Fi2: "-E"
247*67e74705SXin Li // Fi2: "-o" "foo.x"
248*67e74705SXin Li 
249*67e74705SXin Li // To match MSVC behavior /o should be ignored for /P output.
250*67e74705SXin Li 
251*67e74705SXin Li // RUN: %clang_cl /P /ofoo -### -- %s 2>&1 | FileCheck -check-prefix=Fio1 %s
252*67e74705SXin Li // Fio1: "-E"
253*67e74705SXin Li // Fio1: "-o" "cl-outputs.i"
254*67e74705SXin Li 
255*67e74705SXin Li // RUN: %clang_cl /P /o foo.x -### -- %s 2>&1 | FileCheck -check-prefix=Fio2 %s
256*67e74705SXin Li // Fio2: "-E"
257*67e74705SXin Li // Fio2: "-o" "cl-outputs.i"
258*67e74705SXin Li 
259*67e74705SXin Li // RUN: %clang_cl /P /obar.x /Fifoo.x -### -- %s 2>&1 | FileCheck -check-prefix=FioRACE1 %s
260*67e74705SXin Li // FioRACE1: "-E"
261*67e74705SXin Li // FioRACE1: "-o" "foo.x"
262*67e74705SXin Li 
263*67e74705SXin Li // RUN: %clang_cl /P /Fifoo.x /obar.x -### -- %s 2>&1 | FileCheck -check-prefix=FioRACE2 %s
264*67e74705SXin Li // FioRACE2: "-E"
265*67e74705SXin Li // FioRACE2: "-o" "foo.x"
266