diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-06-18 00:53:41 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-06-18 00:53:41 +0000 |
commit | e665d6929e11796620ff799bc0186ebd747bfc76 (patch) | |
tree | 674045cb6c17c790f19a161135db2d3c77e12a51 /lib/Frontend | |
parent | 60a5e3f90031191f18128eab8326eea70b266b27 (diff) |
[arcmt] Fix the ARC migrator. -arcmt-modify requires running before the initialization of SourceManager
because it is going to modify the input file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133323 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend')
-rw-r--r-- | lib/Frontend/FrontendAction.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Frontend/FrontendAction.cpp b/lib/Frontend/FrontendAction.cpp index 0024818ad8..0128d6ee05 100644 --- a/lib/Frontend/FrontendAction.cpp +++ b/lib/Frontend/FrontendAction.cpp @@ -130,6 +130,9 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI, setCurrentFile(Filename, InputKind); setCompilerInstance(&CI); + if (!BeginInvocation(CI)) + goto failure; + // AST files follow a very different path, since they share objects via the // AST unit. if (InputKind == IK_AST) { @@ -386,8 +389,13 @@ ASTConsumer *WrapperFrontendAction::CreateASTConsumer(CompilerInstance &CI, llvm::StringRef InFile) { return WrappedAction->CreateASTConsumer(CI, InFile); } +bool WrapperFrontendAction::BeginInvocation(CompilerInstance &CI) { + return WrappedAction->BeginInvocation(CI); +} bool WrapperFrontendAction::BeginSourceFileAction(CompilerInstance &CI, llvm::StringRef Filename) { + WrappedAction->setCurrentFile(getCurrentFile(), getCurrentFileKind()); + WrappedAction->setCompilerInstance(&CI); return WrappedAction->BeginSourceFileAction(CI, Filename); } void WrapperFrontendAction::ExecuteAction() { |