On Thu, Jun 07, 2001 at 10:20:51AM -0700, John Baldwin wrote:
>
> On 07-Jun-01 Peter Pentchev wrote:
> > On Thu, Jun 07, 2001 at 07:07:22PM +0300, Peter Pentchev wrote:
> >> Hi,
> >>
> >> Is free((void *) (size_t) ptr) the only way to free a const whatever *ptr
> >> with WARNS=2? (or more specifically, with -Wcast-qual)
> >
> > Uhm. OK. So size_t may not be enough to hold a pointer. What is it then -
> > caddr_t?
>
> uintptr_t for data pointers. In theory I think code pointers may not fit in a
> uintptr_t.
C99 says of uintptr_t only that for any valid pointer p, the following
is true:
(void *)(uintptr_t)p == (void *)p
Likewise for intptr_t. I read that as covering both code and data
pointers.
Of course, who's to say the way uintptr_t is implemented on our
platform adheres to the same rules :-)
> free((void *)(uintptr_t)ptr) should work.
>
> Of course, this begs the question of why you are free'ing a const. :)
Indeed!
Cheers,
--
Jacques Vidrine / [EMAIL PROTECTED] / [EMAIL PROTECTED] / [EMAIL PROTECTED]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message