diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-09-15 01:21:18 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-09-15 01:21:18 +0000 |
commit | 8b464f299fe0358ed4b82ea269a63155081c73ff (patch) | |
tree | 6bd07fdcf89be40c52b3acaea16529a3a28ec5b3 /clang/lib/Frontend | |
parent | cd35eff395b4c21b6f0f3e05a7e09665b6caab79 (diff) | |
download | bcm5719-llvm-8b464f299fe0358ed4b82ea269a63155081c73ff.tar.gz bcm5719-llvm-8b464f299fe0358ed4b82ea269a63155081c73ff.zip |
[modules] Support use of -E on modules built from the command line.
llvm-svn: 342306
Diffstat (limited to 'clang/lib/Frontend')
-rw-r--r-- | clang/lib/Frontend/FrontendAction.cpp | 8 | ||||
-rw-r--r-- | clang/lib/Frontend/FrontendActions.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Frontend/Rewrite/FrontendActions.cpp | 7 |
3 files changed, 9 insertions, 10 deletions
diff --git a/clang/lib/Frontend/FrontendAction.cpp b/clang/lib/Frontend/FrontendAction.cpp index 10f1d1ef611..d24700535e2 100644 --- a/clang/lib/Frontend/FrontendAction.cpp +++ b/clang/lib/Frontend/FrontendAction.cpp @@ -587,12 +587,12 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI, assert(ASTModule && "module file does not define its own module"); Input = FrontendInputFile(ASTModule->PresumedModuleMapFile, Kind); } else { - auto &SM = CI.getSourceManager(); - FileID ID = SM.getMainFileID(); - if (auto *File = SM.getFileEntryForID(ID)) + auto &OldSM = AST->getSourceManager(); + FileID ID = OldSM.getMainFileID(); + if (auto *File = OldSM.getFileEntryForID(ID)) Input = FrontendInputFile(File->getName(), Kind); else - Input = FrontendInputFile(SM.getBuffer(ID), Kind); + Input = FrontendInputFile(OldSM.getBuffer(ID), Kind); } setCurrentInput(Input, std::move(AST)); } diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp index d0d83076f1d..08d91e6a5a1 100644 --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -825,7 +825,7 @@ void PrintPreprocessedAction::ExecuteAction() { } std::unique_ptr<raw_ostream> OS = - CI.createDefaultOutputFile(BinaryMode, getCurrentFile()); + CI.createDefaultOutputFile(BinaryMode, getCurrentFileOrBufferName()); if (!OS) return; // If we're preprocessing a module map, start by dumping the contents of the @@ -837,8 +837,6 @@ void PrintPreprocessedAction::ExecuteAction() { OS->write_escaped(Input.getFile()); (*OS) << "\"\n"; } - // FIXME: Include additional information here so that we don't need the - // original source files to exist on disk. getCurrentModule()->print(*OS); (*OS) << "#pragma clang module contents\n"; } diff --git a/clang/lib/Frontend/Rewrite/FrontendActions.cpp b/clang/lib/Frontend/Rewrite/FrontendActions.cpp index fa17b3e7cb3..bcf6d215c99 100644 --- a/clang/lib/Frontend/Rewrite/FrontendActions.cpp +++ b/clang/lib/Frontend/Rewrite/FrontendActions.cpp @@ -181,7 +181,7 @@ RewriteObjCAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) { void RewriteMacrosAction::ExecuteAction() { CompilerInstance &CI = getCompilerInstance(); std::unique_ptr<raw_ostream> OS = - CI.createDefaultOutputFile(true, getCurrentFile()); + CI.createDefaultOutputFile(true, getCurrentFileOrBufferName()); if (!OS) return; RewriteMacrosInInput(CI.getPreprocessor(), OS.get()); @@ -190,7 +190,7 @@ void RewriteMacrosAction::ExecuteAction() { void RewriteTestAction::ExecuteAction() { CompilerInstance &CI = getCompilerInstance(); std::unique_ptr<raw_ostream> OS = - CI.createDefaultOutputFile(false, getCurrentFile()); + CI.createDefaultOutputFile(false, getCurrentFileOrBufferName()); if (!OS) return; DoRewriteTest(CI.getPreprocessor(), OS.get()); @@ -265,7 +265,8 @@ public: bool RewriteIncludesAction::BeginSourceFileAction(CompilerInstance &CI) { if (!OutputStream) { - OutputStream = CI.createDefaultOutputFile(true, getCurrentFile()); + OutputStream = + CI.createDefaultOutputFile(true, getCurrentFileOrBufferName()); if (!OutputStream) return false; } |