summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/DIBuilder.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-01-20 03:01:27 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-01-20 03:01:27 +0000
commit5f39dfd429f3715d7034820f73a71b99dc68af5e (patch)
treebad1b2229fdf9b4e75b38dce3a411f138b25bb6c /llvm/lib/IR/DIBuilder.cpp
parent03e0583a2d02519a21d23cb0fb0da457c325f09d (diff)
downloadbcm5719-llvm-5f39dfd429f3715d7034820f73a71b99dc68af5e.tar.gz
bcm5719-llvm-5f39dfd429f3715d7034820f73a71b99dc68af5e.zip
Revert "IR: Simplify DIBuilder's HeaderBuilder API, NFC"
This reverts commit r226540, since I hit an unexpected bot failure [1]. I'll investigate. [1]: http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/20244 llvm-svn: 226542
Diffstat (limited to 'llvm/lib/IR/DIBuilder.cpp')
-rw-r--r--llvm/lib/IR/DIBuilder.cpp20
1 files changed, 5 insertions, 15 deletions
diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp
index c6df3409a47..eb686aa4bec 100644
--- a/llvm/lib/IR/DIBuilder.cpp
+++ b/llvm/lib/IR/DIBuilder.cpp
@@ -25,23 +25,15 @@ using namespace llvm::dwarf;
namespace {
class HeaderBuilder {
- /// \brief Whether there are any fields yet.
- ///
- /// Note that this is not equivalent to \c Chars.empty(), since \a concat()
- /// may have been called already with an empty string.
- bool IsEmpty;
SmallVector<char, 256> Chars;
public:
- HeaderBuilder() : IsEmpty(true) {}
+ explicit HeaderBuilder(Twine T) { T.toVector(Chars); }
HeaderBuilder(const HeaderBuilder &X) : Chars(X.Chars) {}
HeaderBuilder(HeaderBuilder &&X) : Chars(std::move(X.Chars)) {}
template <class Twineable> HeaderBuilder &concat(Twineable &&X) {
- if (IsEmpty)
- IsEmpty = false;
- else
- Chars.push_back(0);
+ Chars.push_back(0);
Twine(X).toVector(Chars);
return *this;
}
@@ -51,7 +43,7 @@ public:
}
static HeaderBuilder get(unsigned Tag) {
- return HeaderBuilder().concat("0x" + Twine::utohexstr(Tag));
+ return HeaderBuilder("0x" + Twine::utohexstr(Tag));
}
};
}
@@ -747,10 +739,8 @@ static HeaderBuilder setTypeFlagsInHeader(StringRef Header,
Flags = 0;
Flags |= FlagsToSet;
- return HeaderBuilder()
- .concat(I.getPrefix())
- .concat(Flags)
- .concat(I.getSuffix());
+ return HeaderBuilder(Twine(I.getPrefix())).concat(Flags).concat(
+ I.getSuffix());
}
static DIType createTypeWithFlags(LLVMContext &Context, DIType Ty,
OpenPOWER on IntegriCloud