aboutsummaryrefslogtreecommitdiff
path: root/lib/Rewrite/FrontendActions.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-01-26 04:19:04 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-01-26 04:19:04 +0000
commitc8af9107fd1eb014d9124b753c38c4d06fa219f4 (patch)
tree779e3232e8b43465c742dfc3036fc2d53cfd7e1a /lib/Rewrite/FrontendActions.cpp
parentf81263f04b0c211e1f2e2a08aca74256654c362b (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.cpp15
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();
}
};