diff options
author | dim <dim@FreeBSD.org> | 2015-06-21 14:00:56 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-06-21 14:00:56 +0000 |
commit | 9dd834653b811ad20382e98a87dff824980c9916 (patch) | |
tree | a764184c2fc9486979b074250b013a0937ee64e5 /lib/Frontend/Rewrite | |
parent | bb9760db9b86e93a638ed430d0a14785f7ff9064 (diff) | |
download | FreeBSD-src-9dd834653b811ad20382e98a87dff824980c9916.zip FreeBSD-src-9dd834653b811ad20382e98a87dff824980c9916.tar.gz |
Vendor import of clang trunk r240225:
https://llvm.org/svn/llvm-project/cfe/trunk@240225
Diffstat (limited to 'lib/Frontend/Rewrite')
-rw-r--r-- | lib/Frontend/Rewrite/FixItRewriter.cpp | 7 | ||||
-rw-r--r-- | lib/Frontend/Rewrite/FrontendActions.cpp | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/Frontend/Rewrite/FixItRewriter.cpp b/lib/Frontend/Rewrite/FixItRewriter.cpp index a3e14f9..dc787ac 100644 --- a/lib/Frontend/Rewrite/FixItRewriter.cpp +++ b/lib/Frontend/Rewrite/FixItRewriter.cpp @@ -81,6 +81,13 @@ bool FixItRewriter::WriteFixedFiles( RewritesReceiver Rec(Rewrite); Editor.applyRewrites(Rec); + if (FixItOpts->InPlace) { + // Overwriting open files on Windows is tricky, but the rewriter can do it + // for us. + Rewrite.overwriteChangedFiles(); + return false; + } + for (iterator I = buffer_begin(), E = buffer_end(); I != E; ++I) { const FileEntry *Entry = Rewrite.getSourceMgr().getFileEntryForID(I->first); int fd; diff --git a/lib/Frontend/Rewrite/FrontendActions.cpp b/lib/Frontend/Rewrite/FrontendActions.cpp index 1b5eb28..dbc661b 100644 --- a/lib/Frontend/Rewrite/FrontendActions.cpp +++ b/lib/Frontend/Rewrite/FrontendActions.cpp @@ -48,9 +48,10 @@ FixItAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) { namespace { class FixItRewriteInPlace : public FixItOptions { public: + FixItRewriteInPlace() { InPlace = true; } + std::string RewriteFilename(const std::string &Filename, int &fd) override { - fd = -1; - return Filename; + llvm_unreachable("don't call RewriteFilename for inplace rewrites"); } }; |