ccc: Suffix for PCH files is appended, not replaced.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64466 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Driver.py b/tools/ccc/ccclib/Driver.py
index cda0161..43e145b 100644
--- a/tools/ccc/ccclib/Driver.py
+++ b/tools/ccc/ccclib/Driver.py
@@ -802,10 +802,13 @@
             if phase.type is Types.ImageType:
                 namedOutput = "a.out"
             else:
-                inputName = args.getValue(baseInput)
-                base,_ = os.path.splitext(inputName)
                 assert phase.type.tempSuffix is not None
-                namedOutput = base + '.' + phase.type.tempSuffix
+                inputName = args.getValue(baseInput)
+                if phase.type.appendSuffix:
+                    namedOutput = inputName + '.' + phase.type.tempSuffix
+                else:
+                    base,_ = os.path.splitext(inputName)
+                    namedOutput = base + '.' + phase.type.tempSuffix
 
             # Output to user requested destination?
             if atTopLevel and finalOutput:
diff --git a/tools/ccc/ccclib/Types.py b/tools/ccc/ccclib/Types.py
index 1dd3ed9..94c0041 100644
--- a/tools/ccc/ccclib/Types.py
+++ b/tools/ccc/ccclib/Types.py
@@ -4,7 +4,7 @@
     
     def __init__(self, name, preprocess=None, onlyAssemble=False, 
                  onlyPrecompile=False, tempSuffix=None, 
-                 canBeUserSpecified=False):
+                 canBeUserSpecified=False, appendSuffix=False):
         assert preprocess is None or isinstance(preprocess, InputType)
         self.name = name
         self.preprocess = preprocess
@@ -12,6 +12,7 @@
         self.onlyPrecompile = onlyPrecompile
         self.tempSuffix = tempSuffix
         self.canBeUserSpecified = canBeUserSpecified
+        self.appendSuffix = appendSuffix
 
     def __repr__(self):
         return '%s(%r, %r, %r, %r, %r, %r)' % (self.__class__.__name__,
@@ -72,7 +73,7 @@
 LLVMAsmType = InputType('llvm-asm', tempSuffix='ll')
 LLVMBCType = InputType('llvm-bc', tempSuffix='bc')
 PlistType = InputType('plist', tempSuffix='plist')
-PCHType = InputType('precompiled-header', tempSuffix='gch')
+PCHType = InputType('precompiled-header', tempSuffix='gch', appendSuffix=True)
 ObjectType = InputType('object', tempSuffix='o')
 TreelangType = InputType('treelang', canBeUserSpecified=True)
 ImageType = InputType('image', tempSuffix='out')