mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-12 19:01:55 +00:00
No longer reject inputs when using a locale that has grouping information _and_ the input has no grouping characters at all. We continue to reject cases when the input has grouping characters in the wrong place. Fixes PR#28704
llvm-svn: 362508
This commit is contained in:
parent
1e63dd0b44
commit
605d62e9de
@ -4379,7 +4379,9 @@ void
|
||||
__check_grouping(const string& __grouping, unsigned* __g, unsigned* __g_end,
|
||||
ios_base::iostate& __err)
|
||||
{
|
||||
if (__grouping.size() != 0)
|
||||
// if the grouping pattern is empty _or_ there are no grouping bits, then do nothing
|
||||
// we always have at least a single entry in [__g, __g_end); the end of the input sequence
|
||||
if (__grouping.size() >= 0 && __g_end - __g > 1)
|
||||
{
|
||||
reverse(__g, __g_end);
|
||||
const char* __ig = __grouping.data();
|
||||
|
@ -162,14 +162,14 @@ int main(int, char**)
|
||||
ios.imbue(std::locale(std::locale(), new my_numpunct));
|
||||
{
|
||||
v = -1;
|
||||
const char str[] = "123";
|
||||
const char str[] = "123"; // no separators at all
|
||||
std::ios_base::iostate err = ios.goodbit;
|
||||
input_iterator<const char*> iter =
|
||||
f.get(input_iterator<const char*>(str),
|
||||
input_iterator<const char*>(str+sizeof(str)),
|
||||
ios, err, v);
|
||||
assert(iter.base() == str+sizeof(str)-1);
|
||||
assert(err == ios.failbit);
|
||||
assert(err == ios.goodbit);
|
||||
assert(v == 123);
|
||||
}
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user