diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-01-27 01:00:47 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-01-27 01:00:47 +0000 |
commit | 30ae84cfd175f913436fb078188d754d166d987c (patch) | |
tree | cf94671733d229bf962a01f98297f4a01697f1f5 /lib/Rewrite/FrontendActions.cpp | |
parent | ba4be25c90566f5f214c2ad0364840c5a04ba651 (diff) |
In FixItRecompile::BeginInvocation(), check the return value of BeginSourceFile().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149107 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Rewrite/FrontendActions.cpp')
-rw-r--r-- | lib/Rewrite/FrontendActions.cpp | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/lib/Rewrite/FrontendActions.cpp b/lib/Rewrite/FrontendActions.cpp index a35861df83..5e33a44111 100644 --- a/lib/Rewrite/FrontendActions.cpp +++ b/lib/Rewrite/FrontendActions.cpp @@ -113,25 +113,27 @@ bool FixItRecompile::BeginInvocation(CompilerInstance &CI) { { const FrontendOptions &FEOpts = CI.getFrontendOpts(); llvm::OwningPtr<FrontendAction> FixAction(new SyntaxOnlyAction()); - FixAction->BeginSourceFile(CI, FEOpts.Inputs[0]); - - llvm::OwningPtr<FixItOptions> FixItOpts; - if (FEOpts.FixToTemporaries) - FixItOpts.reset(new FixItRewriteToTemp()); - else - FixItOpts.reset(new FixItRewriteInPlace()); - FixItOpts->Silent = true; - FixItOpts->FixWhatYouCan = FEOpts.FixWhatYouCan; - FixItOpts->FixOnlyWarnings = FEOpts.FixOnlyWarnings; - FixItRewriter Rewriter(CI.getDiagnostics(), CI.getSourceManager(), - CI.getLangOpts(), FixItOpts.get()); - FixAction->Execute(); - - err = Rewriter.WriteFixedFiles(&RewrittenFiles); + if (FixAction->BeginSourceFile(CI, FEOpts.Inputs[0])) { + llvm::OwningPtr<FixItOptions> FixItOpts; + if (FEOpts.FixToTemporaries) + FixItOpts.reset(new FixItRewriteToTemp()); + else + FixItOpts.reset(new FixItRewriteInPlace()); + FixItOpts->Silent = true; + FixItOpts->FixWhatYouCan = FEOpts.FixWhatYouCan; + FixItOpts->FixOnlyWarnings = FEOpts.FixOnlyWarnings; + FixItRewriter Rewriter(CI.getDiagnostics(), CI.getSourceManager(), + CI.getLangOpts(), FixItOpts.get()); + FixAction->Execute(); - FixAction->EndSourceFile(); - CI.setSourceManager(0); - CI.setFileManager(0); + err = Rewriter.WriteFixedFiles(&RewrittenFiles); + + FixAction->EndSourceFile(); + CI.setSourceManager(0); + CI.setFileManager(0); + } else { + err = true; + } } if (err) return false; |