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
This commit is contained in:
Duncan P. N. Exon Smith 2015-01-20 03:01:27 +00:00
parent 03e0583a2d
commit 5f39dfd429
1 changed files with 5 additions and 15 deletions

View File

@ -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,