ccc: Make proper synthetic arguments in places we have to construct
"fake" options, allowing Tools to be oblivious to whether an argument
is real or synthetic. This kills off DerivedArg & a number of FIXMEs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61871 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Tools.py b/tools/ccc/ccclib/Tools.py
index f48aec9..0dd0e30 100644
--- a/tools/ccc/ccclib/Tools.py
+++ b/tools/ccc/ccclib/Tools.py
@@ -30,21 +30,13 @@
 
         cmd_args = sum(map(arglist.render, args),[]) + extraArgs
         if arch:
-            # FIXME: Clean this up.
-            if isinstance(arch, Arguments.DerivedArg):
-                cmd_args.extend(['-arch', arglist.getValue(arch)])
-            else:
-                cmd_args.extend(arglist.render(arch))
+            cmd_args.extend(arglist.render(arch))
         if isinstance(output, Jobs.PipedJob):
             cmd_args.extend(['-o', '-'])
         elif output is None:
             cmd_args.append('-fsyntax-only')
         else:
-            # FIXME: Ditch this hack.
-            if isinstance(output, Arguments.DerivedArg):
-                cmd_args.extend(['-o', arglist.getValue(output)])
-            else:
-                cmd_args.extend(arglist.render(output))
+            cmd_args.extend(arglist.render(output))
 
         cmd_args.extend(['-x', input.type.name])
         if isinstance(input.source, Jobs.PipedJob):
@@ -105,17 +97,9 @@
 
         cmd_args = []
         if arch:
-            # FIXME: Clean this up.
-            if isinstance(arch, Arguments.DerivedArg):
-                cmd_args.extend(['-arch',
-                                 arglist.getValue(arch)])
-            else:
-                cmd_args.extend(arglist.render(arch))
+            cmd_args.extend(arglist.render(arch))
         cmd_args.append('-force_cpusubtype_ALL')
-        if isinstance(output, Arguments.DerivedArg):
-            cmd_args.extend(['-o', arglist.getValue(output)])
-        else:
-            cmd_args.extend(arglist.render(output))
+        cmd_args.extend(arglist.render(output))
         if isinstance(input.source, Jobs.PipedJob):
             cmd_args.append('-')
         else:
@@ -138,10 +122,7 @@
                     cmd_args.extend(arglist.render(arg))
         for input in inputs:
             cmd_args.append(arglist.getValue(input.source))
-        if isinstance(output, Arguments.DerivedArg):
-            cmd_args.extend(['-o', arglist.getValue(output)])
-        else:
-            cmd_args.extend(arglist.render(output))
+        cmd_args.extend(arglist.render(output))
         cmd_args.extend(['-L/usr/lib/gcc/i686-apple-darwin10/4.2.1',
                          '-lcrt1.10.5.o',
                          '-lgcc_s.10.5',
@@ -158,10 +139,7 @@
         assert outputType is Types.ImageType
 
         cmd_args = ['-create']
-        if isinstance(output, Arguments.DerivedArg):
-            cmd_args.extend(['-o', arglist.getValue(output)])
-        else:
-            cmd_args.extend(arglist.render(output))
+        cmd_args.extend(arglist.render(output))
         for input in inputs:
             cmd_args.append(arglist.getValue(input.source))
         jobs.addJob(Jobs.Command('lipo', cmd_args))