forked from OSchip/llvm-project
clang-cl: accept the /C option with /P (PR19978)
(It's also allowed with /EP, but we haven't implemented that option yet.) llvm-svn: 210695
This commit is contained in:
parent
5235803e67
commit
8f00837110
|
@ -63,10 +63,14 @@ static void addAssemblerKPIC(const ArgList &Args, ArgStringList &CmdArgs) {
|
|||
/// CheckPreprocessingOptions - Perform some validation of preprocessing
|
||||
/// arguments that is shared with gcc.
|
||||
static void CheckPreprocessingOptions(const Driver &D, const ArgList &Args) {
|
||||
if (Arg *A = Args.getLastArg(options::OPT_C, options::OPT_CC))
|
||||
if (!Args.hasArg(options::OPT_E) && !D.CCCIsCPP())
|
||||
if (Arg *A = Args.getLastArg(options::OPT_C, options::OPT_CC)) {
|
||||
if (!Args.hasArg(options::OPT_E) && !Args.hasArg(options::OPT__SLASH_P) &&
|
||||
!Args.hasArg(options::OPT__SLASH_EP) && !D.CCCIsCPP()) {
|
||||
D.Diag(diag::err_drv_argument_only_allowed_with)
|
||||
<< A->getAsString(Args) << "-E";
|
||||
<< A->getBaseArg().getAsString(Args)
|
||||
<< (D.IsCLMode() ? "/E, /P or /EP" : "-E");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// CheckCodeGenerationOptions - Perform some validation of code generation
|
||||
|
|
|
@ -7,8 +7,15 @@
|
|||
|
||||
// Alias options:
|
||||
|
||||
// RUN: %clang_cl /c -### -- %s 2>&1 | FileCheck -check-prefix=C %s
|
||||
// C: -c
|
||||
// RUN: %clang_cl /c -### -- %s 2>&1 | FileCheck -check-prefix=c %s
|
||||
// c: -c
|
||||
|
||||
// RUN: %clang_cl /C -### -- %s 2>&1 | FileCheck -check-prefix=C %s
|
||||
// C: error: invalid argument '-C' only allowed with '/E, /P or /EP'
|
||||
|
||||
// RUN: %clang_cl /C /P -### -- %s 2>&1 | FileCheck -check-prefix=C_P %s
|
||||
// C_P: "-E"
|
||||
// C_P: "-C"
|
||||
|
||||
// RUN: %clang_cl /Dfoo=bar -### -- %s 2>&1 | FileCheck -check-prefix=D %s
|
||||
// RUN: %clang_cl /D foo=bar -### -- %s 2>&1 | FileCheck -check-prefix=D %s
|
||||
|
|
Loading…
Reference in New Issue