]> granicus.if.org Git - clang/commitdiff
ccc: Darwin/Compiler: Improve gcc compat in use of -auxbase-strip.
authorDaniel Dunbar <daniel@zuster.org>
Wed, 14 Jan 2009 03:31:16 +0000 (03:31 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 14 Jan 2009 03:31:16 +0000 (03:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62213 91177308-0d34-0410-b5e6-96231b3b80d8

tools/ccc/ccclib/Tools.py

index 26200f1b9fc8818fce98c61752fe811807c9b304..90723069a33e436d83aba90b26bc407c63bba49b 100644 (file)
@@ -459,16 +459,16 @@ class Darwin_X86_CompileTool(Tool):
 
         # FIXME: The goal is to use the user provided -o if that is
         # our final output, otherwise to drive from the original input
-        # name.
-        #
-        # This implementation is close, but gcc also does this for -S
-        # which is broken, and it would be nice to find a cleaner way
-        # which doesn't introduce a dependency on the output argument
-        # we are given.
-        outputOpt = arglist.getLastArg(arglist.parser.oOption)
-        if outputOpt and outputOpt is output:
-            cmd_args.append('-auxbase-strip')
-            cmd_args.append(arglist.getValue(outputOpt))
+        # name. Find a clean way to go about this.
+        if (arglist.getLastArg(arglist.parser.cOption) or
+            arglist.getLastArg(arglist.parser.SOption)):            
+            outputOpt = arglist.getLastArg(arglist.parser.oOption)
+            if outputOpt:
+                cmd_args.append('-auxbase-strip')
+                cmd_args.append(arglist.getValue(outputOpt))
+            else:
+                cmd_args.append('-auxbase')
+                cmd_args.append(self.getBaseInputStem(inputs, arglist))
         else:
             cmd_args.append('-auxbase')
             cmd_args.append(self.getBaseInputStem(inputs, arglist))