forked from OSchip/llvm-project
add a test and a couple minor bug fixes for the implicit-signed-integer-truncation sanitizer. This is PR#40566
llvm-svn: 352926
This commit is contained in:
parent
259e1bdfdd
commit
2e719bc428
|
@ -546,7 +546,7 @@ __num_get<_CharT>::__stage2_float_loop(_CharT __ct, bool& __in_units, char& __ex
|
|||
__exp = 'P';
|
||||
else if ((__x & 0x5F) == __exp)
|
||||
{
|
||||
__exp |= 0x80;
|
||||
__exp |= (char) 0x80;
|
||||
if (__in_units)
|
||||
{
|
||||
__in_units = false;
|
||||
|
|
|
@ -558,7 +558,7 @@ basic_stringbuf<_CharT, _Traits, _Allocator>::overflow(int_type __c)
|
|||
char_type* __p = const_cast<char_type*>(__str_.data());
|
||||
this->setg(__p, __p + __ninp, __hm_);
|
||||
}
|
||||
return this->sputc(__c);
|
||||
return this->sputc(traits_type::to_char_type(__c));
|
||||
}
|
||||
return traits_type::not_eof(__c);
|
||||
}
|
||||
|
|
|
@ -58,4 +58,9 @@ int main()
|
|||
ss << i << ' ' << 321;
|
||||
assert(ss.str() == L"89 3219 ");
|
||||
}
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss.write("\xd1", 1);
|
||||
assert(ss.str().length() == 1);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue