[driver] Clang doesn't support -mkernel/-fapple-kext for i386, so it's
automatically invoking llvm-gcc's cc1plus, which doesn't support all options supported by Clang. Therefore, filter out unsupported options. rdar://9964354 llvm-svn: 137842
This commit is contained in:
parent
e575902c71
commit
bc5ea3d4b9
|
@ -2446,6 +2446,18 @@ darwin::CC1::getDependencyFileName(const ArgList &Args,
|
|||
return Args.MakeArgString(Res + ".d");
|
||||
}
|
||||
|
||||
void darwin::CC1::RemoveCC1UnsupportedArgs(ArgStringList &CmdArgs) const {
|
||||
for (ArgStringList::iterator it = CmdArgs.begin(), ie = CmdArgs.end();
|
||||
it != ie;) {
|
||||
if (!strcmp(*it, "-Wno-self-assign")) {
|
||||
it = CmdArgs.erase(it);
|
||||
it = CmdArgs.end();
|
||||
}
|
||||
else
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
||||
void darwin::CC1::AddCC1Args(const ArgList &Args,
|
||||
ArgStringList &CmdArgs) const {
|
||||
const Driver &D = getToolChain().getDriver();
|
||||
|
@ -2853,6 +2865,8 @@ void darwin::Compile::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(Output.getFilename());
|
||||
}
|
||||
|
||||
RemoveCC1UnsupportedArgs(CmdArgs);
|
||||
|
||||
const char *CC1Name = getCC1Name(Inputs[0].getType());
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath(CC1Name));
|
||||
|
|
|
@ -178,6 +178,7 @@ namespace darwin {
|
|||
const char *getCC1Name(types::ID Type) const;
|
||||
|
||||
void AddCC1Args(const ArgList &Args, ArgStringList &CmdArgs) const;
|
||||
void RemoveCC1UnsupportedArgs(ArgStringList &CmdArgs) const;
|
||||
void AddCC1OptionsArgs(const ArgList &Args, ArgStringList &CmdArgs,
|
||||
const InputInfoList &Inputs,
|
||||
const ArgStringList &OutputArgs) const;
|
||||
|
|
|
@ -14,3 +14,11 @@
|
|||
|
||||
// CHECK-MKERNEL: cc1plus"
|
||||
// CHECK-MKERNEL: "-mkernel"
|
||||
|
||||
// RUN: %clang -ccc-host-triple i386-apple-darwin10 \
|
||||
// RUN: -Wno-self-assign \
|
||||
// RUN: -fapple-kext -### -fsyntax-only %s 2> %t
|
||||
// RUN: FileCheck --check-prefix=CHECK-UNSUPPORTED < %t %s
|
||||
|
||||
// CHECK-UNSUPPORTED: cc1plus"
|
||||
// CHECK-UNSUPPORTED-NOT: "-Wno-self-assign"
|
||||
|
|
Loading…
Reference in New Issue