This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question about building hash values from pointers


Andrew Haley <aph@redhat.com> writes:

> Richard Guenther wrote:
>> On Fri, May 30, 2008 at 10:57 AM, Kai Tietz <Kai.Tietz@onevision.com> wrote:
>>> Hi,
>>>
>>> as I noticed, most hash value calculations are trying to use pointer
>>> values for building the value and assume that a long/unsigned long scalar
>>> is wide enough for a pointer. This is at least for w64 target not true. So
>>> I want to know, if it would be good to introduce an gcc specific type for
>>> those kind of casts, or to use ssize_t/size_t.?
>> 
>> it's uintptr_t which should be used, if only as an intermediate cast -
>> (unsigned long)(uintptr_t)ptr.
>
> That's not possible because, IIRC, gcc must compile on C90 systems.

We can just test for it with autoconf and typedef it if we don't have
it.  We can figure out what to typedef it to by comparing the sizeof
void* to the sizeof the integer types--we already gather these sizes
in the configure script anyhow, and use them in hwint.h.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]