From: Argyrios Kyrtzidis Date: Fri, 27 Jan 2012 01:00:47 +0000 (+0000) Subject: In FixItRecompile::BeginInvocation(), check the return value of BeginSourceFile(). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=30ae84cfd175f913436fb078188d754d166d987c;p=clang 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 --- 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 FixAction(new SyntaxOnlyAction()); - FixAction->BeginSourceFile(CI, FEOpts.Inputs[0]); - - llvm::OwningPtr 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 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;