aboutsummaryrefslogtreecommitdiff
path: root/Driver/clang.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-12-19 23:48:45 +0000
committerTed Kremenek <kremenek@apple.com>2007-12-19 23:48:45 +0000
commit1036b68525f39cb69ac22c679ed440acd8392a16 (patch)
tree442e9694a74daa29099d3907807f6443f97dcadf /Driver/clang.cpp
parent95041a2029a069386ee67439f6d0fb524a9d184f (diff)
Added methods createMainFileID() and createMainFileIDForMemBuffer() to
SourceManager to allow SourceManager to directly intern the MainFileID when it is created. Removed setMainFileID(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45231 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Driver/clang.cpp')
-rw-r--r--Driver/clang.cpp24
1 files changed, 8 insertions, 16 deletions
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index f38c83a6f8..4ac14adb9c 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -530,19 +530,18 @@ static unsigned InitializePreprocessor(Preprocessor &PP,
FileManager &FileMgr = PP.getFileManager();
// Figure out where to get and map in the main file.
- unsigned MainFileID = 0;
SourceManager &SourceMgr = PP.getSourceManager();
if (InFile != "-") {
const FileEntry *File = FileMgr.getFile(InFile);
- if (File) MainFileID = SourceMgr.createFileID(File, SourceLocation());
- if (MainFileID == 0) {
+ if (File) SourceMgr.createMainFileID(File, SourceLocation());
+ if (SourceMgr.getMainFileID() == 0) {
fprintf(stderr, "Error reading '%s'!\n",InFile.c_str());
return 0;
}
} else {
llvm::MemoryBuffer *SB = llvm::MemoryBuffer::getSTDIN();
- if (SB) MainFileID = SourceMgr.createFileIDForMemBuffer(SB);
- if (MainFileID == 0) {
+ if (SB) SourceMgr.createMainFileIDForMemBuffer(SB);
+ if (SourceMgr.getMainFileID() == 0) {
fprintf(stderr, "Error reading standard input! Empty?\n");
return 0;
}
@@ -562,10 +561,8 @@ static unsigned InitializePreprocessor(Preprocessor &PP,
PP.setPredefines(&PredefineBuffer[0]);
// Once we've read this, we're done.
- return MainFileID;
+ return SourceMgr.getMainFileID();
}
-
-
//===----------------------------------------------------------------------===//
// Preprocessor include path information.
@@ -931,7 +928,7 @@ static ASTConsumer* CreateASTConsumer(const std::string& InFile,
case SerializeAST:
// FIXME: Allow user to tailor where the file is written.
- return CreateASTSerializer(InFile, Diag, LangOpts);
+ return CreateASTSerializer(InFile, OutputFile, Diag, LangOpts);
case RewriteTest:
return CreateCodeRewriterTest(Diag);
@@ -1170,15 +1167,10 @@ int main(int argc, char **argv) {
Preprocessor PP(Diags, LangInfo, *Target, SourceMgr, HeaderInfo);
std::vector<char> PredefineBuffer;
- unsigned MainFileID = InitializePreprocessor(PP, InFile, PredefineBuffer);
-
- if (!MainFileID)
+ if (!InitializePreprocessor(PP, InFile, PredefineBuffer))
continue;
- SourceMgr.setMainFileID(MainFileID);
-
- ProcessInputFile(PP, InFile, *DiagClient);
-
+ ProcessInputFile(PP, InFile, *DiagClient);
HeaderInfo.ClearFileInfo();
if (Stats)