ccc: Handle a few long argument form (--) translations using option
groups, and fix misdeclaration of some -W options.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62702 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Arguments.py b/tools/ccc/ccclib/Arguments.py
index c79161e..2aefa04 100644
--- a/tools/ccc/ccclib/Arguments.py
+++ b/tools/ccc/ccclib/Arguments.py
@@ -475,17 +475,19 @@
         self.dumpversionOption = self.addOption(FlagOption('-dumpversion'))
         self.dumpmachineOption = self.addOption(FlagOption('-dumpmachine'))
         self.printSearchDirsOption = self.addOption(FlagOption('-print-search-dirs'))
-        self.printLibgccFileNameOption = self.addOption(FlagOption('-print-libgcc-file-name'))
-        # FIXME: Hrm, where does this come from? It isn't always true that
-        # we take both - and --. For example, gcc --S ... ends up sending
-        # -fS to cc1. Investigate.
-        #
-        # FIXME: Need to implement some form of alias support inside
-        # getLastOption to handle this.
-        self.printLibgccFileNameOption2 = self.addOption(FlagOption('--print-libgcc-file-name'))
-        self.printFileNameOption = self.addOption(JoinedOption('-print-file-name='))
-        self.printProgNameOption = self.addOption(JoinedOption('-print-prog-name='))
-        self.printProgNameOption2 = self.addOption(JoinedOption('--print-prog-name='))
+
+        self.printLibgccFileNameOption = OptionGroup('-print-libgcc-file-name')
+        self.addOption(FlagOption('-print-libgcc-file-name', self.printLibgccFileNameOption))
+        self.addOption(FlagOption('--print-libgcc-file-name', self.printLibgccFileNameOption))
+
+        self.printFileNameOption = OptionGroup('-print-file-name=')
+        self.addOption(JoinedOption('-print-file-name=', self.printFileNameOption))
+        self.addOption(JoinedOption('--print-file-name=', self.printFileNameOption))
+
+        self.printProgNameOption = OptionGroup('-print-prog-name=')
+        self.addOption(JoinedOption('-print-prog-name=', self.printProgNameOption))
+        self.addOption(JoinedOption('--print-prog-name=', self.printProgNameOption))
+
         self.printMultiDirectoryOption = self.addOption(FlagOption('-print-multi-directory'))
         self.printMultiLibOption = self.addOption(FlagOption('-print-multi-lib'))
         self.addOption(FlagOption('-print-multi-os-directory'))
@@ -501,8 +503,11 @@
         self.combineOption = self.addOption(FlagOption('-combine'))
         self.noIntegratedCPPOption = self.addOption(FlagOption('-no-integrated-cpp'))
         self.pipeOption = self.addOption(FlagOption('-pipe'))
-        self.saveTempsOption = self.addOption(FlagOption('-save-temps'))
-        self.saveTempsOption2 = self.addOption(FlagOption('--save-temps'))
+
+        self.saveTempsOption = OptionGroup('-save-temps')
+        self.addOption(FlagOption('-save-temps', self.saveTempsOption))
+        self.addOption(FlagOption('--save-temps', self.saveTempsOption))
+
         # FIXME: Error out if this is used.
         self.addOption(JoinedOption('-specs='))
         # FIXME: Implement.
@@ -806,13 +811,13 @@
         self.WGroup = OptionGroup('-W')
         self.ClangWGroup = OptionGroup('-W', self.WGroup)
 
-        self.addOption(JoinedOption('-Wunused-macros', self.ClangWGroup))
-        self.addOption(JoinedOption('-Wfloat-equal', self.ClangWGroup))
-        self.addOption(JoinedOption('-Wreadonly-setter-attrs', self.ClangWGroup))
-        self.addOption(JoinedOption('-Wno-format-nonliteral', self.ClangWGroup))
-        self.addOption(JoinedOption('-Wundef', self.ClangWGroup))
-        self.addOption(JoinedOption('-Wimplicit-function-declaration', self.ClangWGroup))
-        self.addOption(JoinedOption('-Wno-strict-selector-match', self.ClangWGroup))
+        self.addOption(FlagOption('-Wunused-macros', self.ClangWGroup))
+        self.addOption(FlagOption('-Wfloat-equal', self.ClangWGroup))
+        self.addOption(FlagOption('-Wreadonly-setter-attrs', self.ClangWGroup))
+        self.addOption(FlagOption('-Wno-format-nonliteral', self.ClangWGroup))
+        self.addOption(FlagOption('-Wundef', self.ClangWGroup))
+        self.addOption(FlagOption('-Wimplicit-function-declaration', self.ClangWGroup))
+        self.addOption(FlagOption('-Wno-strict-selector-match', self.ClangWGroup))
 
         self.WnonportableCfstringsOption = self.addOption(JoinedOption('-Wnonportable-cfstrings', self.WGroup))
         self.WnoNonportableCfstringsOption = self.addOption(JoinedOption('-Wno-nonportable-cfstrings', self.WGroup))