ccc: Recognize that -M and -MM only run preprocessor.
- Clean up some placement of output args to match gcc more precisely
(for testing).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62566 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Driver.py b/tools/ccc/ccclib/Driver.py
index e52640e..9622566 100644
--- a/tools/ccc/ccclib/Driver.py
+++ b/tools/ccc/ccclib/Driver.py
@@ -338,6 +338,8 @@
hasDashC = args.getLastArg(self.parser.cOption)
hasDashE = args.getLastArg(self.parser.EOption)
hasDashS = args.getLastArg(self.parser.SOption)
+ hasDashM = args.getLastArg(self.parser.MOption)
+ hasDashMM = args.getLastArg(self.parser.MMOption)
inputType = None
inputTypeOpt = None
@@ -401,7 +403,7 @@
finalPhaseOpt = None
# Determine what compilation mode we are in.
- if hasDashE:
+ if hasDashE or hasDashM or hasDashMM:
finalPhase = Phases.Phase.eOrderPreprocess
finalPhaseOpt = hasDashE
elif hasSyntaxOnly:
@@ -520,14 +522,12 @@
# FIXME: We need to handle canonicalization of the specified arch.
archs = []
- hasDashM = None
+ hasDashM = args.getLastArg(self.parser.MGroup)
hasSaveTemps = (args.getLastArg(self.parser.saveTempsOption) or
args.getLastArg(self.parser.saveTempsOption2))
for arg in args:
if arg.opt is self.parser.archOption:
archs.append(arg)
- elif arg.opt.name.startswith('-M'):
- hasDashM = arg
if not archs:
archs.append(args.makeSeparateArg(self.hostInfo.getArchName(args),