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 | af0bdfc6920a578ebcc3be986d0cc1644a68ce2f (patch) | |
tree | 7d55b89e0b0e90e68d3327042d7bf62ac4c89cfd /clang/lib | |
parent | 8f28dbdde5d30496b42211f04db8dba85d30298f (diff) | |
download | bcm5719-llvm-af0bdfc6920a578ebcc3be986d0cc1644a68ce2f.tar.gz bcm5719-llvm-af0bdfc6920a578ebcc3be986d0cc1644a68ce2f.zip |
In FixItRecompile::BeginInvocation(), check the return value of BeginSourceFile().
llvm-svn: 149107
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Rewrite/FrontendActions.cpp | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/clang/lib/Rewrite/FrontendActions.cpp b/clang/lib/Rewrite/FrontendActions.cpp index a35861df830..5e33a441118 100644 --- a/clang/lib/Rewrite/FrontendActions.cpp +++ b/clang/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; |