http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52764

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-03-29
     Ever Confirmed|0                           |1

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-03-29 
09:58:58 UTC ---
Including <stdint.h> alone should declare the macros, <cstdint> isn't needed to
demonstrate the bug.

The problem is that <stdint.h> has this:

/* The ISO C99 standard specifies that in C++ implementations these
   macros should only be defined if explicitly requested.  */
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS

Which is indeed what C99 says, but C99 doesn't get to dictate rules to C++, and
C11 doesn't include that useless footnote.

GCC's own <stdint-gcc.h> should be fixed and glibc's <stdint.h> should be
fixed, and GCC's <stdint.h> should probably include

#ifdef __cplusplus
# define __STDC_LIMIT_MACROS
#endif

if GCC detects that glibc requires it in order to function correctly.

In short: not a libstdc++ bug!

Reply via email to