clang-cl: Ignore the /o option when /P is specified.
This matches the cl.exe behavior (tested with 18.00.31101). In order to specify an output file for /P, use the /Fi option instead. Differential Revision: http://reviews.llvm.org/D10313 llvm-svn: 239393
This commit is contained in:
parent
0389d66b0c
commit
065f70ae80
|
@ -1692,8 +1692,7 @@ const char *Driver::GetNamedOutputPath(Compilation &C,
|
||||||
assert(AtTopLevel && isa<PreprocessJobAction>(JA));
|
assert(AtTopLevel && isa<PreprocessJobAction>(JA));
|
||||||
StringRef BaseName = llvm::sys::path::filename(BaseInput);
|
StringRef BaseName = llvm::sys::path::filename(BaseInput);
|
||||||
StringRef NameArg;
|
StringRef NameArg;
|
||||||
if (Arg *A = C.getArgs().getLastArg(options::OPT__SLASH_Fi,
|
if (Arg *A = C.getArgs().getLastArg(options::OPT__SLASH_Fi))
|
||||||
options::OPT__SLASH_o))
|
|
||||||
NameArg = A->getValue();
|
NameArg = A->getValue();
|
||||||
return C.addResultFile(MakeCLOutputFilename(C.getArgs(), NameArg, BaseName,
|
return C.addResultFile(MakeCLOutputFilename(C.getArgs(), NameArg, BaseName,
|
||||||
types::TY_PP_C), &JA);
|
types::TY_PP_C), &JA);
|
||||||
|
|
|
@ -249,22 +249,15 @@
|
||||||
// Fi2: "-E"
|
// Fi2: "-E"
|
||||||
// Fi2: "-o" "foo.x"
|
// Fi2: "-o" "foo.x"
|
||||||
|
|
||||||
|
// To match MSVC behavior /o should be ignored for /P output.
|
||||||
|
|
||||||
// RUN: %clang_cl /P /ofoo -### -- %s 2>&1 | FileCheck -check-prefix=Fio1 %s
|
// RUN: %clang_cl /P /ofoo -### -- %s 2>&1 | FileCheck -check-prefix=Fio1 %s
|
||||||
// Fio1: "-E"
|
// Fio1: "-E"
|
||||||
// Fio1: "-o" "foo.i"
|
// Fio1: "-o" "cl-outputs.i"
|
||||||
|
|
||||||
// RUN: %clang_cl /P /o foo -### -- %s 2>&1 | FileCheck -check-prefix=Fio2 %s
|
// RUN: %clang_cl /P /o foo.x -### -- %s 2>&1 | FileCheck -check-prefix=Fio2 %s
|
||||||
// Fio2: "-E"
|
// Fio2: "-E"
|
||||||
// Fio2: "-o" "foo.i"
|
// Fio2: "-o" "cl-outputs.i"
|
||||||
|
|
||||||
// RUN: %clang_cl /P /ofoo.x -### -- %s 2>&1 | FileCheck -check-prefix=Fio3 %s
|
|
||||||
// Fio3: "-E"
|
|
||||||
// Fio3: "-o" "foo.x"
|
|
||||||
|
|
||||||
// RUN: %clang_cl /P /o foo.x -### -- %s 2>&1 | FileCheck -check-prefix=Fio4 %s
|
|
||||||
// Fio4: "-E"
|
|
||||||
// Fio4: "-o" "foo.x"
|
|
||||||
|
|
||||||
|
|
||||||
// RUN: %clang_cl /P /obar.x /Fifoo.x -### -- %s 2>&1 | FileCheck -check-prefix=FioRACE1 %s
|
// RUN: %clang_cl /P /obar.x /Fifoo.x -### -- %s 2>&1 | FileCheck -check-prefix=FioRACE1 %s
|
||||||
// FioRACE1: "-E"
|
// FioRACE1: "-E"
|
||||||
|
@ -272,7 +265,7 @@
|
||||||
|
|
||||||
// RUN: %clang_cl /P /Fifoo.x /obar.x -### -- %s 2>&1 | FileCheck -check-prefix=FioRACE2 %s
|
// RUN: %clang_cl /P /Fifoo.x /obar.x -### -- %s 2>&1 | FileCheck -check-prefix=FioRACE2 %s
|
||||||
// FioRACE2: "-E"
|
// FioRACE2: "-E"
|
||||||
// FioRACE2: "-o" "bar.x"
|
// FioRACE2: "-o" "foo.x"
|
||||||
|
|
||||||
// RUN: %clang_cl /c /GL -### -- %s 2>&1 | FileCheck -check-prefix=LTO-DEFAULT %s
|
// RUN: %clang_cl /c /GL -### -- %s 2>&1 | FileCheck -check-prefix=LTO-DEFAULT %s
|
||||||
// LTO-DEFAULT: "-emit-llvm-bc"{{.*}}"-o" "cl-outputs.obj"
|
// LTO-DEFAULT: "-emit-llvm-bc"{{.*}}"-o" "cl-outputs.obj"
|
||||||
|
|
Loading…
Reference in New Issue