https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128228

--- Comment #4 from dave.anglin at bell dot net ---
On 2026-10-28 6:18 a.m., redi at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128228
> 
> --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
> Yes, it looks like the declarations in 
> libstdc++-v3/config/os/hpux/os_defines.h
> mean that std::strtoull is defined even though ::strtoull isn't. But that's
> non-conforming, both should be available.

I'm not sure how these are implemented.  The only active HP-UX target is
hppa64-hp-hpux11*.
On this target, long and long long are the same size.  Target has strtol and
strtoul.

There's also:
/usr/include/inttypes.h:extern intmax_t __strtoll (const char *, char**, int);
/usr/include/inttypes.h:extern uintmax_t __strtoull (const char *, char**,
int);

> So maybe we want:
> 
> --- a/libstdc++-v3/config/os/hpux/os_defines.h
> +++ b/libstdc++-v3/config/os/hpux/os_defines.h
> @@ -72,6 +72,8 @@ namespace std
>  #endif
>    }
>  } // namespace std
> +using std::strtoll;
> +using std::strtoull;
>  #endif // __cplusplus
> 
>  // HPUX on IA64 requires vtable to be 64 bit aligned even at 32 bit
> 
I can test the above change on hppa64-hp-hpux11.11.

Reply via email to