Messages in this thread | | | Subject | Re: [PATCH][2.6.6-rc3] gcc-3.4.0 fixes | From | Andreas Schwab <> | Date | Tue, 01 Jun 2004 17:38:33 +0200 |
| |
William Lee Irwin III <wli@holomorphy.com> writes:
> On Tue, Jun 01, 2004 at 04:52:59PM +0200, Mikael Pettersson wrote: >> You're assuming pointers have uniform representation. >> C makes no such guarantees, and machines _have_ had >> different types of representations in the past. >> Some not-so-obsolete 64-bit machines in effect use fat >> representations for pointers to functions (descriptors), >> but they usually cheat and use pointers to the descriptors >> instead. However, a C implementation could legally >> represent a function pointer as a 128-bit value, while >> data pointers remain 64 bits. > > IIRC for all types foo, sizeof(foo *) <= sizeof(void *), no?
No. There is no implied relation between data pointers and function pointers. The only requirement is that all _function_ pointers smell alike, because you can convert any function pointer to any other function pointer and back without losing information. There is no dedicated generic function pointer type, any one can function as one.
Andreas.
-- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |