ccc: -x assembler-with-cpp was broken for darwin, and it wasn't using
clang as the preprocessor even when it should.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66737 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Tools.py b/tools/ccc/ccclib/Tools.py
index 53fe38d..f4b8683 100644
--- a/tools/ccc/ccclib/Tools.py
+++ b/tools/ccc/ccclib/Tools.py
@@ -193,7 +193,13 @@
elif outputType is Types.LLVMBCType:
cmd_args.append('-emit-llvm-bc')
elif outputType is Types.AsmTypeNoPP:
- cmd_args.append('-S')
+ # FIXME: This is hackish, it would be better if we had the
+ # action instead of just looking at types.
+ assert len(inputs) == 1
+ if inputs[0].type is Types.AsmType:
+ cmd_args.append('-E')
+ else:
+ cmd_args.append('-S')
elif (inputs[0].type.preprocess and
outputType is inputs[0].type.preprocess):
cmd_args.append('-E')
@@ -453,7 +459,9 @@
"""getCC1Name(type) -> name, use-cpp, is-cxx"""
# FIXME: Get bool results from elsewhere.
- if type is Types.CType or type is Types.CHeaderType:
+ if type is Types.AsmType:
+ return 'cc1',True,False
+ elif type is Types.CType or type is Types.CHeaderType:
return 'cc1',True,False
elif type is Types.CTypeNoPP or type is Types.CHeaderNoPPType:
return 'cc1',False,False