diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-01-20 03:01:27 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-01-20 03:01:27 +0000 |
commit | 5f39dfd429f3715d7034820f73a71b99dc68af5e (patch) | |
tree | bad1b2229fdf9b4e75b38dce3a411f138b25bb6c /llvm/lib/IR/DIBuilder.cpp | |
parent | 03e0583a2d02519a21d23cb0fb0da457c325f09d (diff) | |
download | bcm5719-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.cpp | 20 |
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, |