diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Support/StringSaver.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Support/StringSaver.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/Support/StringSaver.cpp b/contrib/llvm-project/llvm/lib/Support/StringSaver.cpp index f7ccfb97ea79..4a616d734832 100644 --- a/contrib/llvm-project/llvm/lib/Support/StringSaver.cpp +++ b/contrib/llvm-project/llvm/lib/Support/StringSaver.cpp @@ -8,6 +8,8 @@ #include "llvm/Support/StringSaver.h" +#include "llvm/ADT/SmallString.h" + using namespace llvm; StringRef StringSaver::save(StringRef S) { @@ -18,9 +20,19 @@ StringRef StringSaver::save(StringRef S) { return StringRef(P, S.size()); } +StringRef StringSaver::save(const Twine &S) { + SmallString<128> Storage; + return save(S.toStringRef(Storage)); +} + StringRef UniqueStringSaver::save(StringRef S) { auto R = Unique.insert(S); if (R.second) // cache miss, need to actually save the string *R.first = Strings.save(S); // safe replacement with equal value return *R.first; } + +StringRef UniqueStringSaver::save(const Twine &S) { + SmallString<128> Storage; + return save(S.toStringRef(Storage)); +} |