summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-08-13 01:07:02 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-08-13 01:07:02 +0000
commitb82455d2625aef2c5925dda8586888c2c48a5013 (patch)
tree5e090dcd675b9b276e2be6c6ce6c89739536e2cc /llvm
parentdc298329cc378e923995d5c674b112f671d806a5 (diff)
downloadbcm5719-llvm-b82455d2625aef2c5925dda8586888c2c48a5013.tar.gz
bcm5719-llvm-b82455d2625aef2c5925dda8586888c2c48a5013.zip
There is only one saver of strings.
llvm-svn: 244854
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/Support/CommandLine.h1
-rw-r--r--llvm/include/llvm/Support/StringSaver.h16
-rw-r--r--llvm/lib/LibDriver/LibDriver.cpp2
-rw-r--r--llvm/lib/Support/CommandLine.cpp4
-rw-r--r--llvm/lib/Support/StringSaver.cpp2
-rw-r--r--llvm/unittests/Support/CommandLineTest.cpp2
6 files changed, 8 insertions, 19 deletions
diff --git a/llvm/include/llvm/Support/CommandLine.h b/llvm/include/llvm/Support/CommandLine.h
index 379d06a6574..467dc128aea 100644
--- a/llvm/include/llvm/Support/CommandLine.h
+++ b/llvm/include/llvm/Support/CommandLine.h
@@ -33,7 +33,6 @@
namespace llvm {
-class BumpPtrStringSaver;
class StringSaver;
/// cl Namespace - This namespace contains all of the command line option
diff --git a/llvm/include/llvm/Support/StringSaver.h b/llvm/include/llvm/Support/StringSaver.h
index f3853ee9157..38fb7bb3833 100644
--- a/llvm/include/llvm/Support/StringSaver.h
+++ b/llvm/include/llvm/Support/StringSaver.h
@@ -18,25 +18,15 @@ namespace llvm {
/// \brief Saves strings in the inheritor's stable storage and returns a stable
/// raw character pointer.
-class StringSaver {
-protected:
- ~StringSaver() {}
- virtual const char *saveImpl(StringRef S);
+class StringSaver final {
+ BumpPtrAllocator &Alloc;
public:
StringSaver(BumpPtrAllocator &Alloc) : Alloc(Alloc) {}
const char *save(const char *S) { return save(StringRef(S)); }
- const char *save(StringRef S) { return saveImpl(S); }
+ const char *save(StringRef S);
const char *save(const Twine &S) { return save(StringRef(S.str())); }
const char *save(std::string &S) { return save(StringRef(S)); }
-
-private:
- BumpPtrAllocator &Alloc;
-};
-
-class BumpPtrStringSaver final : public StringSaver {
-public:
- BumpPtrStringSaver(BumpPtrAllocator &Alloc) : StringSaver(Alloc) {}
};
}
#endif
diff --git a/llvm/lib/LibDriver/LibDriver.cpp b/llvm/lib/LibDriver/LibDriver.cpp
index ff9c31cd975..cc5c543888c 100644
--- a/llvm/lib/LibDriver/LibDriver.cpp
+++ b/llvm/lib/LibDriver/LibDriver.cpp
@@ -102,7 +102,7 @@ static Optional<std::string> findInputFile(StringRef File,
int llvm::libDriverMain(llvm::ArrayRef<const char*> ArgsArr) {
SmallVector<const char *, 20> NewArgs(ArgsArr.begin(), ArgsArr.end());
BumpPtrAllocator Alloc;
- BumpPtrStringSaver Saver(Alloc);
+ StringSaver Saver(Alloc);
cl::ExpandResponseFiles(Saver, cl::TokenizeWindowsCommandLine, NewArgs);
ArgsArr = NewArgs;
diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp
index 17fba95ebb2..11162ce0ec4 100644
--- a/llvm/lib/Support/CommandLine.cpp
+++ b/llvm/lib/Support/CommandLine.cpp
@@ -799,7 +799,7 @@ void cl::ParseEnvironmentOptions(const char *progName, const char *envVar,
// telling us.
SmallVector<const char *, 20> newArgv;
BumpPtrAllocator A;
- BumpPtrStringSaver Saver(A);
+ StringSaver Saver(A);
newArgv.push_back(Saver.save(progName));
// Parse the value of the environment variable into a "command line"
@@ -822,7 +822,7 @@ void CommandLineParser::ParseCommandLineOptions(int argc,
// Expand response files.
SmallVector<const char *, 20> newArgv(argv, argv + argc);
BumpPtrAllocator A;
- BumpPtrStringSaver Saver(A);
+ StringSaver Saver(A);
ExpandResponseFiles(Saver, TokenizeGNUCommandLine, newArgv);
argv = &newArgv[0];
argc = static_cast<int>(newArgv.size());
diff --git a/llvm/lib/Support/StringSaver.cpp b/llvm/lib/Support/StringSaver.cpp
index d6b84e53dcc..bbc1fd27626 100644
--- a/llvm/lib/Support/StringSaver.cpp
+++ b/llvm/lib/Support/StringSaver.cpp
@@ -11,7 +11,7 @@
using namespace llvm;
-const char *StringSaver::saveImpl(StringRef S) {
+const char *StringSaver::save(StringRef S) {
char *P = Alloc.Allocate<char>(S.size() + 1);
memcpy(P, S.data(), S.size());
P[S.size()] = '\0';
diff --git a/llvm/unittests/Support/CommandLineTest.cpp b/llvm/unittests/Support/CommandLineTest.cpp
index e0fbf5b09e5..2ae30c21ec4 100644
--- a/llvm/unittests/Support/CommandLineTest.cpp
+++ b/llvm/unittests/Support/CommandLineTest.cpp
@@ -155,7 +155,7 @@ void testCommandLineTokenizer(ParserFunction *parse, const char *Input,
const char *const Output[], size_t OutputSize) {
SmallVector<const char *, 0> Actual;
BumpPtrAllocator A;
- BumpPtrStringSaver Saver(A);
+ StringSaver Saver(A);
parse(Input, Saver, Actual, /*MarkEOLs=*/false);
EXPECT_EQ(OutputSize, Actual.size());
for (unsigned I = 0, E = Actual.size(); I != E; ++I) {
OpenPOWER on IntegriCloud