diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-01-20 01:53:54 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-01-20 01:53:54 +0000 |
commit | fce72bc19c775b71edc21a2a710a9d7f02251aa6 (patch) | |
tree | e894f97267ea8d52e072d358247f8d5dd3f7cb64 /tools/ccc/ccclib/Tools.py | |
parent | d24d25533b021ce0b68213b25754284121b52995 (diff) |
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
Diffstat (limited to 'tools/ccc/ccclib/Tools.py')
-rw-r--r-- | tools/ccc/ccclib/Tools.py | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/tools/ccc/ccclib/Tools.py b/tools/ccc/ccclib/Tools.py index 94f2b60bfd..ab9ad7b5a8 100644 --- a/tools/ccc/ccclib/Tools.py +++ b/tools/ccc/ccclib/Tools.py @@ -425,27 +425,21 @@ class Darwin_X86_CC1Tool(Tool): def getOutputArgs(self, arglist, output, isCPP=False): if isinstance(output, Jobs.PipedJob): if isCPP: - output_args = [] + return [] else: - output_args = ['-o', '-'] + return ['-o', '-'] elif output is None: - output_args = ['-o', '/dev/null'] + return ['-o', '/dev/null'] else: - output_args = arglist.render(output) - - # There is no need for this level of compatibility, but it - # makes diffing easier. - if (not arglist.getLastArg(arglist.parser.syntaxOnlyOption) and - not arglist.getLastArg(arglist.parser.SOption)): - return [], output_args - else: - return output_args, [] + return arglist.render(output) def addCPPOptionsArgs(self, cmd_args, arch, arglist, inputs, output_args, isCXX): # Derived from cpp_options. self.addCPPUniqueOptionsArgs(cmd_args, arch, arglist, inputs) + cmd_args.extend(output_args) + self.addCC1Args(cmd_args, arch, arglist) # NOTE: The code below has some commonality with cpp_options, @@ -598,11 +592,10 @@ class Darwin_X86_PreprocessTool(Darwin_X86_CC1Tool): arglist.getLastArg(arglist.parser.traditionalCPPOption)): cmd_args.append('-traditional-cpp') - early_output_args, end_output_args = self.getOutputArgs(arglist, output, - isCPP=True) + output_args = self.getOutputArgs(arglist, output, + isCPP=True) self.addCPPOptionsArgs(cmd_args, arch, arglist, inputs, - early_output_args, isCXX) - cmd_args.extend(end_output_args) + output_args, isCXX) arglist.addAllArgs(cmd_args, arglist.parser.dGroup) @@ -629,7 +622,16 @@ class Darwin_X86_CompileTool(Darwin_X86_CC1Tool): arglist.getLastArg(arglist.parser.f_traditionalOption)): raise Arguments.InvalidArgumentsError("-traditional is not supported without -E") - early_output_args, end_output_args = self.getOutputArgs(arglist, output) + output_args = self.getOutputArgs(arglist, output) + + # There is no need for this level of compatibility, but it + # makes diffing easier. + if (not arglist.getLastArg(arglist.parser.syntaxOnlyOption) and + not arglist.getLastArg(arglist.parser.SOption)): + early_output_args, end_output_args = [], output_args + else: + early_output_args, end_output_args = output_args, [] + if usePP: self.addCPPUniqueOptionsArgs(cmd_args, arch, arglist, inputs) self.addCC1OptionsArgs(cmd_args, arch, arglist, inputs, |