[libstdc++] intptr_t usage

Richard Henderson rth@redhat.com
Tue Mar 27 23:38:00 GMT 2007

On Wed, Mar 28, 2007 at 12:48:32AM +0200, Paolo Carlini wrote:
> >I'm not sure what's required generically to assert that intptr_t is
> >present; certainly it's available on Linux and Win64...
> > 
> Yes, that's a problem, it's available only in C99, and we can't assume 
> that kind of libc, in general. I don't know, maybe we can use long long 
> (or maybe better, unsigned long long), and choose the right type via 
> something like:
> typedef __gnu_cxx::__conditional_type<(sizeof(const void*) <= 
> sizeof(unsigned long)), unsigned long, unsigned long long>::__type 
> _UIntPtrType;
> Is it sufficient to cover all the targets where libstdc++ actually 
> works?

Dunno.  Another alternative would be

typedef unsigned long _UIntPtrType;
typedef unsigned long long _UIntPtrType;
typedef unsigned int _UIntPtrType;
typedef unsigned short int _UIntPtrType;


More information about the Gcc-patches mailing list