Re: C standard compliance?
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 29, 2014, 20:42 UTC
- Message-ID
- <xmqqwqhiikpg.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <87iot25y0r.fsf@fencepost.gnu.org>
David Kastrup <dak@gnu.org> writes:
Show 6 quoted lines
> Hi, I am wondering if I may compare pointers with < that have been > created using different calls of malloc. > > The C standard does not allow this (inequalities are only allowed for > pointers into the same structure) to allow for some cheapskate sort of > comparison in segmented architectures.
Hmm... if you were to implement a set of pointers in such a way that you can cheaply tell if an unknown pointer belongs to that set, you would use a hashtable, keyed with something that is derived from the value of the pointer casted to uintptr_t, I would think. Is such a use of ((uintptr_t)ptr) unallowed? If it is allowed, comparing two unrelated pointers after casting them to uintptr_t would equally be valid, I would have to think.