diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-03-08 23:35:24 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-03-08 23:35:24 +0000 |
commit | 97d3a38c3eab5e2baac400bc152268068990934f (patch) | |
tree | 974fa4fb5bbe00b13bdf5e45be61bf40138ff7f5 /clang/lib/Basic/SourceManager.cpp | |
parent | 4bb6c6b37ed03f47fb07e1694e51c8a81ae3b33e (diff) | |
download | llvm-97d3a38c3eab5e2baac400bc152268068990934f.zip llvm-97d3a38c3eab5e2baac400bc152268068990934f.tar.gz llvm-97d3a38c3eab5e2baac400bc152268068990934f.tar.bz2 |
Add 'OverridenFilesKeepOriginalName' field in SourceManager which if true the SourceManager
should report the original file name for contents of files that were overriden by other files,
otherwise it should report the name of the new file. Default is true.
Also add similar field in PreprocessorOptions and pass similar parameter in ASTUnit::LoadFromCommandLine.
llvm-svn: 127289
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
-rw-r--r-- | clang/lib/Basic/SourceManager.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index cffdb93..b6939ec 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -340,7 +340,7 @@ LineTableInfo &SourceManager::getLineTable() { //===----------------------------------------------------------------------===// SourceManager::SourceManager(Diagnostic &Diag, FileManager &FileMgr) - : Diag(Diag), FileMgr(FileMgr), + : Diag(Diag), FileMgr(FileMgr), OverridenFilesKeepOriginalName(true), ExternalSLocEntries(0), LineTable(0), NumLinearScans(0), NumBinaryProbes(0) { clearIDTables(); @@ -403,7 +403,9 @@ SourceManager::getOrCreateContentCache(const FileEntry *FileEnt) { if (overI == OverriddenFiles.end()) new (Entry) ContentCache(FileEnt); else - new (Entry) ContentCache(FileEnt, overI->second); + new (Entry) ContentCache(OverridenFilesKeepOriginalName ? FileEnt + : overI->second, + overI->second); return Entry; } |