Collapse the original file name and original file ID records into a
single record. 


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166206 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp
index 019e7c1..20fa279 100644
--- a/lib/Serialization/ASTReader.cpp
+++ b/lib/Serialization/ASTReader.cpp
@@ -1860,24 +1860,17 @@
       break;
     }
 
-    case ORIGINAL_FILE_NAME:
+    case ORIGINAL_FILE:
       // Only record from the primary AST file.
       if (&F == *ModuleMgr.begin()) {
-        // The primary AST will be the last to get here, so it will be the one
-        // that's used.
+        OriginalFileID = FileID::get(Record[0]);
+
         ActualOriginalFileName.assign(BlobStart, BlobLen);
         OriginalFileName = ActualOriginalFileName;
         MaybeAddSystemRootToFilename(OriginalFileName);
       }
       break;
 
-    case ORIGINAL_FILE_ID:
-      // Only record from the primary AST file.
-      if (&F == *ModuleMgr.begin()) {
-        OriginalFileID = FileID::get(Record[0]);
-      }
-      break;
-        
     case ORIGINAL_PCH_DIR:
       // Only record from the primary AST file.
       if (&F == *ModuleMgr.begin()) {
@@ -3323,8 +3316,7 @@
     Record.clear();
     const char *BlobStart = 0;
     unsigned BlobLen = 0;
-    if (Stream.ReadRecord(Code, Record, &BlobStart, &BlobLen)
-          == ORIGINAL_FILE_NAME)
+    if (Stream.ReadRecord(Code, Record, &BlobStart, &BlobLen) == ORIGINAL_FILE)
       return std::string(BlobStart, BlobLen);
   }
 
diff --git a/lib/Serialization/ASTWriter.cpp b/lib/Serialization/ASTWriter.cpp
index 3814ef1..ea3db88 100644
--- a/lib/Serialization/ASTWriter.cpp
+++ b/lib/Serialization/ASTWriter.cpp
@@ -773,8 +773,7 @@
   RECORD(IMPORTS);
   RECORD(LANGUAGE_OPTIONS);
   RECORD(TARGET_OPTIONS);
-  RECORD(ORIGINAL_FILE_NAME);
-  RECORD(ORIGINAL_FILE_ID);
+  RECORD(ORIGINAL_FILE);
   RECORD(ORIGINAL_PCH_DIR);
 
   // AST Top-Level Block.
@@ -1070,7 +1069,8 @@
   SourceManager &SM = Context.getSourceManager();
   if (const FileEntry *MainFile = SM.getFileEntryForID(SM.getMainFileID())) {
     BitCodeAbbrev *FileAbbrev = new BitCodeAbbrev();
-    FileAbbrev->Add(BitCodeAbbrevOp(ORIGINAL_FILE_NAME));
+    FileAbbrev->Add(BitCodeAbbrevOp(ORIGINAL_FILE));
+    FileAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // File ID
     FileAbbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); // File name
     unsigned FileAbbrevCode = Stream.EmitAbbrev(FileAbbrev);
 
@@ -1082,12 +1082,10 @@
     MainFileNameStr = adjustFilenameForRelocatablePCH(MainFileNameStr,
                                                       isysroot);
     RecordData Record;
-    Record.push_back(ORIGINAL_FILE_NAME);
-    Stream.EmitRecordWithBlob(FileAbbrevCode, Record, MainFileNameStr);
-    
-    Record.clear();
+    Record.push_back(ORIGINAL_FILE);
     Record.push_back(SM.getMainFileID().getOpaqueValue());
-    Stream.EmitRecord(ORIGINAL_FILE_ID, Record);
+    Stream.EmitRecordWithBlob(FileAbbrevCode, Record, MainFileNameStr);
+    Record.clear();
   }
 
   // Original PCH directory