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