public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* 128-bit integers and intmax_t
@ 2000-09-18 14:14 Joseph S. Myers
  2000-09-18 14:44 ` Geoff Keating
  0 siblings, 1 reply; 2+ messages in thread
From: Joseph S. Myers @ 2000-09-18 14:14 UTC (permalink / raw)
  To: gcc

When HOST_BITS_PER_WIDE_INT >= 64, gcc has some support for 128-bit
integer types (`int __attribute__((__mode__(__TI__)))' and `unsigned int
__attribute__((__mode__(__TI__)))').  Should these count as "extended
integer types" (within the meaning of C99 6.2.5p7)?

If they so count, then intmax_t and uintmax_t would need to be defined
accordingly - which would break existing ABIs (e.g. glibc), and the
dependence on HOST_BITS_PER_WIDE_INT would be rather undesirable.  The
pragmatic solution seems to be to define that these types are not extended
integer types, regardless of the level of support GCC has for them and how
much they look like extended integer types, and to add appropriate
-pedantic warnings, but does anyone see any better solution?

-- 
Joseph S. Myers
jsm28@cam.ac.uk

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: 128-bit integers and intmax_t
  2000-09-18 14:14 128-bit integers and intmax_t Joseph S. Myers
@ 2000-09-18 14:44 ` Geoff Keating
  0 siblings, 0 replies; 2+ messages in thread
From: Geoff Keating @ 2000-09-18 14:44 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc

"Joseph S. Myers" <jsm28@cam.ac.uk> writes:

> When HOST_BITS_PER_WIDE_INT >= 64, gcc has some support for 128-bit
> integer types (`int __attribute__((__mode__(__TI__)))' and `unsigned int
> __attribute__((__mode__(__TI__)))').  Should these count as "extended
> integer types" (within the meaning of C99 6.2.5p7)?
> 
> If they so count, then intmax_t and uintmax_t would need to be defined
> accordingly - which would break existing ABIs (e.g. glibc), and the
> dependence on HOST_BITS_PER_WIDE_INT would be rather undesirable.  The
> pragmatic solution seems to be to define that these types are not extended
> integer types, regardless of the level of support GCC has for them and how
> much they look like extended integer types, and to add appropriate
> -pedantic warnings, but does anyone see any better solution?

This is a libc issue.  They are extended integer types if and only if
the libc defines intmax_t (or some other standard type) as them.
Otherwise, there's no way for a strictly conforming C program to know
they exist.

-- 
- Geoffrey Keating <geoffk@cygnus.com>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2000-09-18 14:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-09-18 14:14 128-bit integers and intmax_t Joseph S. Myers
2000-09-18 14:44 ` Geoff Keating

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).