diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b6a91b4d416..ed0be81506b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +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 * configure.target (CPULIMITSH): Fix typo in alpha case. diff --git a/libstdc++-v3/config/os/hpux/bits/os_defines.h b/libstdc++-v3/config/os/hpux/bits/os_defines.h index 322bb568567..29b32ea9c99 100644 --- a/libstdc++-v3/config/os/hpux/bits/os_defines.h +++ b/libstdc++-v3/config/os/hpux/bits/os_defines.h @@ -51,23 +51,23 @@ . Ugh. defines a variety of things, some of which we - probably do not want. So we just provide prototypes for - the functions we care about here. + probably do not want. So we don't want to include it here. - However, to do that, we must include to get - intmax_t and uintmax_t. Luckily looks a - lot cleaner as far as namespace pollution is concerned. + Luckily we can just declare strtoll and strtoull with the + __asm extension which effectively renames calls at the + 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 to bastardize configure to deal with this sillyness. */ -#include namespace std { extern "C" long long strtoll (const char *, char **, int) __asm ("__strtoll"); - extern "C" long long strtoull (const char *, char **, int) + extern "C" unsigned long long strtoull (const char *, char **, int) __asm ("__strtoull"); } -extern intmax_t __strtoll (const char *, char**, int); -extern uintmax_t __strtoull (const char *, char**, int); #define _GLIBCPP_USE_LONG_LONG 1 #endif