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