------- Comment #8 from paolo dot carlini at oracle dot com 2009-02-13 11:31
-------
(In reply to comment #7)
Standard use term "unlimited length", which
> means(as I understand) that all other digits should incorporate in only one
> group - only "123456" is correct.
I don't read that anywhere in the Standard.
> The thing is that, according to the standard, CHAR_MAX should be treats
> similar
> as -1. But implementation treats string(1, -1) as no grouping at all, and
> stops
> read, when has encountered symbol ','. So only "123" is accumulated.
> This behaviour seems correct for me (though standard treats only string() as
> no
> grouping at all, 22.2.2.1.2, p8).
> So with string(1, CHAR_MAX) only "123" should be accumulated, not "123,456".
No, no, it is not correct, it is a bug in the current implementation. See where
bool discard is defined, in Stage 2. (1, -1) (or (1, CHAR_MAX)) are not
special, are normal groupings, that must be enforced.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39168