On Thu, 29 Jan 2009 08:53:10 +0000 Andrew Haley <a...@redhat.com> wrote:
> Erik Trulsson wrote: > > On Wed, Jan 28, 2009 at 04:39:39PM +0000, Andrew Haley wrote: > > >> "6.3.2.3 Pointers > >> > >> If a null pointer constant is converted to a pointer type, the > >> resulting pointer, called a null pointer, is guaranteed to compare > >> unequal to a pointer to any object or function." > >> > >> This implies that a linker cannot place an object at address zero. > > > > Wrong. There is nothing which requires a null pointer to be > > all-bits-zero (even though that is by far the most common > > representation of null pointers.) > > We're talking about gcc on ARM. gcc on ARM uses 0 for the null > pointer constant, therefore a linker cannot place an object at > address zero. All the rest is irrelevant. > > Andrew. Um, the linker *must* place the vector table at address zero, because the ARM, at least the ARM7TDMI fetches all exception vectors from there. Dictated by the HW, not the compiler. Zoltan