#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"
}
}
+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");
}
std::set<std::string> SavedStrings;
- llvm::StringSaver Saver;
+ StringSetSaver Saver(SavedStrings);
llvm::cl::ExpandResponseFiles(Saver, llvm::cl::TokenizeGNUCommandLine, argv);
// Handle -cc1 integrated tools.