16210 – [3.4 only] gratuitously omits "long long" I/O (original) (raw)

Description Aaron M. Ucko 2004-06-25 20:50:00 UTC

On systems without strto(u)ll, such as OSF/1 5.1, configure leaves _GLIBCXX_USE_LONG_LONG undefined, disabling all "long long" I/O. However, AFAICT libstdc++-3 has done its own parsing since R1.54 of bits/locale_facets.tcc, and has always done its own formatting, so it should be safe to make "long long" I/O available unconditionally these days.

This bug is particularly aggravating given that bits/postypes.h uses "long long" for streamoff even if "long" is the same size.

Comment 1 Drea Pinski 2004-06-25 21:04:05 UTC

I think this is only true as of 3.4.0 but I could be wrong.

Comment 2 Aaron M. Ucko 2004-06-25 21:13:35 UTC

(In reply to comment #1)

I think this is only true as of 3.4.0 but I could be wrong.

Which aspect? The use of 64-bit friendly stream types is new in 3.4, but locale_facets.tcc actually seems to have done its own parsing since 3.1. (The change occurred in January 2002.)

Comment 3 Paolo Carlini 2004-06-25 21:34:26 UTC

By the way, Andrew is right about stro(u)ll unused only in 3.4, not before.

Comment 4 Aaron M. Ucko 2004-06-25 21:46:17 UTC

(In reply to comment #3)

By the way, Andrew is right about stro(u)ll unused only in 3.4, not before.

Ah, right, there is actually code outside include ;-). At any rate, thanks for taking this on.

Comment 6 Benjamin Kosnik 2004-07-06 22:22:21 UTC

Paolo, if you put this in the gcc-3_4-branch now, this bug report can be closed...

Comment 7 Paolo Carlini 2004-07-06 22:31:57 UTC

Paolo, if you put this in the gcc-3_4-branch now, this bug report can be closed...

Are you reading my mind? ;)

I was in the process of doing that, when I noticed that gcc-3_4 still uses automake 1.7.8... Shall I just regenerate everything, basically bringing over this commit of yours too?

2004-06-14 Benjamin Kosnik <bkoz@redhat.com>

* Makefile.in: Regenerate with automake 1.8.5.
* aclocal.m4: Same.
* include/Makefile.in: Same.
* libmath/Makefile.in: Same.
* libsupc++/Makefile.in: Same.
* po/Makefile.in: Same.
* src/Makefile.in: Same.
* testsuite/Makefile.in: Same.

???

Comment 8 Benjamin Kosnik 2004-07-06 23:14:08 UTC

actually, you have to use the old versions for the branch.... so keep with 1.7.8.

-benjamin

Comment 10 Paolo Carlini 2004-07-06 23:43:01 UTC

Fixed for 3.4.2 too (automake 1.7.8 there)