clean up a bunch of fixme's I added, by moving 
DirectoryLookup::DirType into SourceManager.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56692 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp
index 66a8514..1a072fc 100644
--- a/lib/Basic/SourceManager.cpp
+++ b/lib/Basic/SourceManager.cpp
@@ -76,14 +76,14 @@
 /// corresponds to a file or some other input source.
 unsigned SourceManager::createFileID(const ContentCache *File,
                                      SourceLocation IncludePos,
-                                     unsigned DirCharacter) {
+                                     SrcMgr::Characteristic_t FileCharacter) {
   // If FileEnt is really large (e.g. it's a large .i file), we may not be able
   // to fit an arbitrary position in the file in the FilePos field.  To handle
   // this, we create one FileID for each chunk of the file that fits in a
   // FilePos field.
   unsigned FileSize = File->Buffer->getBufferSize();
   if (FileSize+1 < (1 << SourceLocation::FilePosBits)) {
-    FileIDs.push_back(FileIDInfo::get(IncludePos, 0, File, DirCharacter));
+    FileIDs.push_back(FileIDInfo::get(IncludePos, 0, File, FileCharacter));
     assert(FileIDs.size() < (1 << SourceLocation::FileIDBits) &&
            "Ran out of file ID's!");
     return FileIDs.size();
@@ -95,7 +95,7 @@
   unsigned ChunkNo = 0;
   while (1) {
     FileIDs.push_back(FileIDInfo::get(IncludePos, ChunkNo++, File,
-                                      DirCharacter));
+                                      FileCharacter));
 
     if (FileSize+1 < (1 << SourceLocation::FilePosBits)) break;
     FileSize -= (1 << SourceLocation::FilePosBits);
diff --git a/lib/Driver/InitHeaderSearch.cpp b/lib/Driver/InitHeaderSearch.cpp
index 5c23808..3ebca8e 100644
--- a/lib/Driver/InitHeaderSearch.cpp
+++ b/lib/Driver/InitHeaderSearch.cpp
@@ -43,13 +43,13 @@
   MappedPath.append(Path.begin(), Path.end());
 
   // Compute the DirectoryLookup type.
-  DirectoryLookup::DirType Type;
+  SrcMgr::Characteristic_t Type;
   if (Group == Quoted || Group == Angled)
-    Type = DirectoryLookup::NormalHeaderDir;
+    Type = SrcMgr::C_User;
   else if (isCXXAware)
-    Type = DirectoryLookup::SystemHeaderDir;
+    Type = SrcMgr::C_System;
   else
-    Type = DirectoryLookup::ExternCSystemHeaderDir;
+    Type = SrcMgr::C_ExternCSystem;
   
   
   // If the directory exists, add it.
@@ -267,10 +267,7 @@
       //
       // Since dupes of system dirs are rare, just rescan to find the original
       // that we're nuking instead of using a DenseMap.
-      if (SearchList[i].getDirCharacteristic() == 
-            DirectoryLookup::SystemHeaderDir ||
-          SearchList[i].getDirCharacteristic() == 
-            DirectoryLookup::ExternCSystemHeaderDir) {
+      if (SearchList[i].getDirCharacteristic() != SrcMgr::C_User) {
         // Find the dir that this is the same of.
         unsigned FirstDir;
         for (FirstDir = 0; ; ++FirstDir) {
@@ -281,8 +278,7 @@
         
         // If the first dir in the search path is a non-system dir, zap it
         // instead of the system one.
-        if (SearchList[FirstDir].getDirCharacteristic() == 
-              DirectoryLookup::NormalHeaderDir)
+        if (SearchList[FirstDir].getDirCharacteristic() == SrcMgr::C_User)
           DirToRemove = FirstDir;
       }
       
diff --git a/lib/Lex/PPDirectives.cpp b/lib/Lex/PPDirectives.cpp
index 504bc45..a3aaabd 100644
--- a/lib/Lex/PPDirectives.cpp
+++ b/lib/Lex/PPDirectives.cpp
@@ -675,10 +675,9 @@
   // The #included file will be considered to be a system header if either it is
   // in a system include directory, or if the #includer is a system include
   // header.
-  unsigned FileCharacter = 
-  // FIXME: Casts
-    std::max((unsigned)HeaderInfo.getFileDirFlavor(File),
-          SourceMgr.getDirCharacteristic(getCurrentFileLexer()->getFileLoc()));
+  SrcMgr::Characteristic_t FileCharacter = 
+    std::max(HeaderInfo.getFileDirFlavor(File),
+          SourceMgr.getFileCharacteristic(getCurrentFileLexer()->getFileLoc()));
   
   // Look up the file, create a File ID for it.
   unsigned FileID = SourceMgr.createFileID(File, FilenameTok.getLocation(),
diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp
index 1522bf5..ccaddf5 100644
--- a/lib/Lex/PPLexerChange.cpp
+++ b/lib/Lex/PPLexerChange.cpp
@@ -95,10 +95,8 @@
   
   // Notify the client, if desired, that we are in a new source file.
   if (Callbacks && !CurLexer->Is_PragmaLexer) {
-    DirectoryLookup::DirType FileType =
-     // FIXME:
-      (DirectoryLookup::DirType)
-       SourceMgr.getDirCharacteristic(CurLexer->getFileLoc());
+    SrcMgr::Characteristic_t FileType =
+       SourceMgr.getFileCharacteristic(CurLexer->getFileLoc());
     
     Callbacks->FileChanged(CurLexer->getFileLoc(),
                            PPCallbacks::EnterFile, FileType);
@@ -180,10 +178,8 @@
 
     // Notify the client, if desired, that we are in a new source file.
     if (Callbacks && !isEndOfMacro && CurLexer) {
-      DirectoryLookup::DirType FileType =
-        // FIXME:
-        (DirectoryLookup::DirType)
-        SourceMgr.getDirCharacteristic(CurLexer->getFileLoc());
+      SrcMgr::Characteristic_t FileType =
+        SourceMgr.getFileCharacteristic(CurLexer->getFileLoc());
       
       Callbacks->FileChanged(CurLexer->getSourceLocation(CurLexer->BufferPtr),
                              PPCallbacks::ExitFile, FileType);
diff --git a/lib/Lex/Pragma.cpp b/lib/Lex/Pragma.cpp
index e6955d7..b6f5ac4 100644
--- a/lib/Lex/Pragma.cpp
+++ b/lib/Lex/Pragma.cpp
@@ -239,8 +239,7 @@
   // Notify the client, if desired, that we are in a new source file.
   if (Callbacks)
     Callbacks->FileChanged(TheLexer->getSourceLocation(TheLexer->BufferPtr),
-                           PPCallbacks::SystemHeaderPragma,
-                           DirectoryLookup::SystemHeaderDir);
+                           PPCallbacks::SystemHeaderPragma, SrcMgr::C_System);
 }
 
 /// HandlePragmaDependency - Handle #pragma GCC dependency "foo" blah.