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

Reply via email to