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.