summaryrefslogtreecommitdiffstats
path: root/lib/Support/Twine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Support/Twine.cpp')
-rw-r--r--lib/Support/Twine.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/Support/Twine.cpp b/lib/Support/Twine.cpp
index 292c0c2..21504e9 100644
--- a/lib/Support/Twine.cpp
+++ b/lib/Support/Twine.cpp
@@ -9,13 +9,13 @@
#include "llvm/ADT/Twine.h"
#include "llvm/ADT/SmallString.h"
+#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
std::string Twine::str() const {
SmallString<256> Vec;
- toVector(Vec);
- return std::string(Vec.begin(), Vec.end());
+ return toStringRef(Vec).str();
}
void Twine::toVector(SmallVectorImpl<char> &Out) const {
@@ -23,6 +23,13 @@ void Twine::toVector(SmallVectorImpl<char> &Out) const {
print(OS);
}
+StringRef Twine::toStringRef(SmallVectorImpl<char> &Out) const {
+ if (isSingleStringRef())
+ return getSingleStringRef();
+ toVector(Out);
+ return StringRef(Out.data(), Out.size());
+}
+
void Twine::printOneChild(raw_ostream &OS, const void *Ptr,
NodeKind Kind) const {
switch (Kind) {
@@ -125,9 +132,9 @@ void Twine::printRepr(raw_ostream &OS) const {
}
void Twine::dump() const {
- print(llvm::errs());
+ print(llvm::dbgs());
}
void Twine::dumpRepr() const {
- printRepr(llvm::errs());
+ printRepr(llvm::dbgs());
}
OpenPOWER on IntegriCloud