Don't add null characters to the end of the APFloat string buffer.

Report/patch inspiration by Olaf Krzikalla.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160744 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie 2012-07-25 18:04:24 +00:00
parent e3094283e3
commit 9f14ed1c60

View File

@ -3278,16 +3278,8 @@ APFloat::APFloat(double d) : exponent2(0), sign2(0) {
}
namespace {
static void append(SmallVectorImpl<char> &Buffer,
unsigned N, const char *Str) {
unsigned Start = Buffer.size();
Buffer.set_size(Start + N);
memcpy(&Buffer[Start], Str, N);
}
template <unsigned N>
void append(SmallVectorImpl<char> &Buffer, const char (&Str)[N]) {
append(Buffer, N, Str);
void append(SmallVectorImpl<char> &Buffer, StringRef Str) {
Buffer.append(Str.begin(), Str.end());
}
/// Removes data from the given significand until it is no more