Commit b6e22016 by Jeff Law Committed by Jeff Law

os_defines.h: Do not include <_sys/inttypes.h>.

        * config/os/hpux/bits/os_defines.h: Do not include <_sys/inttypes.h>.
        Twiddle return types for strtoll and strtoull to avoid using
        intmax_t and uintmax-t.

From-SVN: r48293
parent 6eb53511
Sun Dec 23 18:47:24 2001 Jeffrey A Law (law@redhat.com)
* config/os/hpux/bits/os_defines.h: Do not include <_sys/inttypes.h>.
Twiddle return types for strtoll and strtoull to avoid using
intmax_t and uintmax-t.
2001-12-22 Richard Henderson <rth@redhat.com> 2001-12-22 Richard Henderson <rth@redhat.com>
* configure.target (CPULIMITSH): Fix typo in alpha case. * configure.target (CPULIMITSH): Fix typo in alpha case.
......
...@@ -51,23 +51,23 @@ ...@@ -51,23 +51,23 @@
<inttypes.h>. Ugh. <inttypes.h>. Ugh.
<inttypes.h> defines a variety of things, some of which we <inttypes.h> defines a variety of things, some of which we
probably do not want. So we just provide prototypes for probably do not want. So we don't want to include it here.
the functions we care about here.
However, to do that, we must include <sys/_inttypes.h> to get Luckily we can just declare strtoll and strtoull with the
intmax_t and uintmax_t. Luckily <sys/_inttypes.h> looks a __asm extension which effectively renames calls at the
lot cleaner as far as namespace pollution is concerned. source level without namespace pollution.
Also note that the compiler defines _INCLUDE_LONGLONG for C++
unconditionally, which makes intmax_t and uintmax_t long long
types.
We also force _GLIBCPP_USE_LONG_LONG here so that we don't have We also force _GLIBCPP_USE_LONG_LONG here so that we don't have
to bastardize configure to deal with this sillyness. */ to bastardize configure to deal with this sillyness. */
#include <sys/_inttypes.h>
namespace std { namespace std {
extern "C" long long strtoll (const char *, char **, int) extern "C" long long strtoll (const char *, char **, int)
__asm ("__strtoll"); __asm ("__strtoll");
extern "C" long long strtoull (const char *, char **, int) extern "C" unsigned long long strtoull (const char *, char **, int)
__asm ("__strtoull"); __asm ("__strtoull");
} }
extern intmax_t __strtoll (const char *, char**, int);
extern uintmax_t __strtoull (const char *, char**, int);
#define _GLIBCPP_USE_LONG_LONG 1 #define _GLIBCPP_USE_LONG_LONG 1
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment