mirror of
https://github.com/intel/llvm.git
synced 2026-01-24 17:01:00 +08:00
Filter a few more options not recognized by gcc. <rdar://problem/10814020>
These are new options that gcc doesn't recognize so the clang driver needs to remove them when it falls back to invoking gcc. llvm-svn: 149951
This commit is contained in:
@@ -3003,13 +3003,27 @@ void darwin::CC1::RemoveCC1UnsupportedArgs(ArgStringList &CmdArgs) const {
|
||||
StringRef Option = *it;
|
||||
bool RemoveOption = false;
|
||||
|
||||
// Remove -faltivec
|
||||
if (Option.equals("-faltivec")) {
|
||||
it = CmdArgs.erase(it);
|
||||
// Erase both -fmodule-cache-path and its argument.
|
||||
if (Option.equals("-fmodule-cache-path") && it+2 != ie) {
|
||||
it = CmdArgs.erase(it, it+2);
|
||||
ie = CmdArgs.end();
|
||||
continue;
|
||||
}
|
||||
|
||||
// Remove unsupported -f options.
|
||||
if (Option.startswith("-f")) {
|
||||
// Remove -f/-fno- to reduce the number of cases.
|
||||
if (Option.startswith("-fno-"))
|
||||
Option = Option.substr(5);
|
||||
else
|
||||
Option = Option.substr(2);
|
||||
RemoveOption = llvm::StringSwitch<bool>(Option)
|
||||
.Case("altivec", true)
|
||||
.Case("modules", true)
|
||||
.Case("diagnostics-show-note-include-stack", true)
|
||||
.Default(false);
|
||||
}
|
||||
|
||||
// Handle machine specific options.
|
||||
if (Option.startswith("-m")) {
|
||||
RemoveOption = llvm::StringSwitch<bool>(Option)
|
||||
|
||||
Reference in New Issue
Block a user