https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113450
--- Comment #11 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- > --- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- > (In reply to Jonathan Wakely from comment #1) >> I assume that int8_t is char on Solaris, rather than signed char? > > This actually violates the C and C++ standards, which require that intN_t is a > signed integer type, and C 6.2.5 says "There are five standard signed integer > types, designated as signed char, short int, int, long int, and long long > int." > So char isn't allowed, it should be signed char. I've done some digging now: <inttypes.h>/<sys/int_types.h> were introduced into Solaris 2.6 (the file dates from Jul 16 1997), way before the C99 standard was finalized. I've looked around the WG14 archive, and some drafts after that date (N737 (1997-06-26), N788 (1997-11-17), N851 (1998-09-22)) do have the `signed integer type' wording. Unfortunately, all of the previous ones (which would have been the basis of the Solaris implementation) are no longer available.