summaryrefslogtreecommitdiffstats
path: root/clang/tools/driver/driver.cpp
diff options
context:
space:
mode:
authorSean Silva <chisophugis@gmail.com>2014-08-15 23:39:12 +0000
committerSean Silva <chisophugis@gmail.com>2014-08-15 23:39:12 +0000
commitbcd500e09a8aad888aa04d7e92a60f12fef6198b (patch)
tree892a3f294c666d56e83379aa8c949471a820d5b6 /clang/tools/driver/driver.cpp
parentdb7948499872e3ace0efaa793b15d2b4d547fc58 (diff)
downloadbcm5719-llvm-bcd500e09a8aad888aa04d7e92a60f12fef6198b.tar.gz
bcm5719-llvm-bcd500e09a8aad888aa04d7e92a60f12fef6198b.zip
Revert "Update for LLVM change (StringSaver)"
This reverts commit r215785 / 170ebf4f19459ae51a9561d0e65c87ee4c9b2c97. LLD has some StringSavers that need to be updated. One of which takes a lock and I need to investigate that more closely. llvm-svn: 215791
Diffstat (limited to 'clang/tools/driver/driver.cpp')
-rw-r--r--clang/tools/driver/driver.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp
index 02efeb0c288..2533401082a 100644
--- a/clang/tools/driver/driver.cpp
+++ b/clang/tools/driver/driver.cpp
@@ -41,7 +41,6 @@
#include "llvm/Support/Program.h"
#include "llvm/Support/Regex.h"
#include "llvm/Support/Signals.h"
-#include "llvm/Support/StringSaver.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/TargetSelect.h"
#include "llvm/Support/Timer.h"
@@ -282,6 +281,18 @@ static void ParseProgName(SmallVectorImpl<const char *> &ArgVector,
}
}
+namespace {
+ class StringSetSaver : public llvm::cl::StringSaver {
+ public:
+ StringSetSaver(std::set<std::string> &Storage) : Storage(Storage) {}
+ const char *SaveString(const char *Str) override {
+ return GetStableCStr(Storage, Str);
+ }
+ private:
+ std::set<std::string> &Storage;
+ };
+}
+
static void SetBackdoorDriverOutputsFromEnvVars(Driver &TheDriver) {
// Handle CC_PRINT_OPTIONS and CC_PRINT_OPTIONS_FILE.
TheDriver.CCPrintOptions = !!::getenv("CC_PRINT_OPTIONS");
@@ -372,7 +383,7 @@ int main(int argc_, const char **argv_) {
}
std::set<std::string> SavedStrings;
- llvm::StringSaver Saver;
+ StringSetSaver Saver(SavedStrings);
llvm::cl::ExpandResponseFiles(Saver, llvm::cl::TokenizeGNUCommandLine, argv);
// Handle -cc1 integrated tools.
OpenPOWER on IntegriCloud