summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2011-08-17 18:24:55 +0000
committerChad Rosier <mcrosier@apple.com>2011-08-17 18:24:55 +0000
commitbc5ea3d4b96ff2bc968009345a08b639281c94a6 (patch)
tree15a511ed9acdc0ef74fba5afa86a94cea6dc6b48 /clang/lib/Driver/Tools.cpp
parente575902c711bc8156ea006f5ed8bbd933a94f3b2 (diff)
downloadbcm5719-llvm-bc5ea3d4b96ff2bc968009345a08b639281c94a6.tar.gz
bcm5719-llvm-bc5ea3d4b96ff2bc968009345a08b639281c94a6.zip
[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
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index ecfb4fef6f6..2301811c99d 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -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));
OpenPOWER on IntegriCloud