diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-01-26 04:19:04 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-01-26 04:19:04 +0000 |
commit | c8af9107fd1eb014d9124b753c38c4d06fa219f4 (patch) | |
tree | 779e3232e8b43465c742dfc3036fc2d53cfd7e1a /lib/Rewrite/FrontendActions.cpp | |
parent | f81263f04b0c211e1f2e2a08aca74256654c362b (diff) |
In FixItRewriteToTemp::RewriteFilename don't try to close the file descriptor
with close(); return it instead.
Fixes mingw build and eliminates possible racing issues.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149043 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Rewrite/FrontendActions.cpp')
-rw-r--r-- | lib/Rewrite/FrontendActions.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/Rewrite/FrontendActions.cpp b/lib/Rewrite/FrontendActions.cpp index b726d76041..001a043d80 100644 --- a/lib/Rewrite/FrontendActions.cpp +++ b/lib/Rewrite/FrontendActions.cpp @@ -55,7 +55,10 @@ ASTConsumer *FixItAction::CreateASTConsumer(CompilerInstance &CI, namespace { class FixItRewriteInPlace : public FixItOptions { public: - std::string RewriteFilename(const std::string &Filename) { return Filename; } + std::string RewriteFilename(const std::string &Filename, int &fd) { + fd = -1; + return Filename; + } }; class FixItActionSuffixInserter : public FixItOptions { @@ -67,7 +70,8 @@ public: this->FixWhatYouCan = FixWhatYouCan; } - std::string RewriteFilename(const std::string &Filename) { + std::string RewriteFilename(const std::string &Filename, int &fd) { + fd = -1; llvm::SmallString<128> Path(Filename); llvm::sys::path::replace_extension(Path, NewSuffix + llvm::sys::path::extension(Path)); @@ -77,16 +81,13 @@ public: class FixItRewriteToTemp : public FixItOptions { public: - std::string RewriteFilename(const std::string &Filename) { + std::string RewriteFilename(const std::string &Filename, int &fd) { llvm::SmallString<128> Path; Path = llvm::sys::path::filename(Filename); Path += "-%%%%%%%%"; Path += llvm::sys::path::extension(Filename); - int fd; llvm::SmallString<128> NewPath; - if (llvm::sys::fs::unique_file(Path.str(), fd, NewPath) - == llvm::errc::success) - ::close(fd); + llvm::sys::fs::unique_file(Path.str(), fd, NewPath); return NewPath.str(); } }; |