lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Florian Weimer <fw@deneb.enyo.de> writes:

> * Mike Pall:
>
>> I don't think this is an ANSI C violation either, because the
>> (now) invalid pointer is never used in a subsequent comparison.
>
> I think creating an undefined pointer is itself undefined, so it's a
> violation.

Yup.  When reading the standard, I was fondly reminded of the Cyber 175
I was meddling with in my youth.  This computer did not have load and
store instructions.  Instead, any change of address register A6 or A7
wrote out the value of the associated data register X6/X7 to the
corresponding memory location.  A1 for A5 were used for reading data in
the same manner.  A0 was disconnected with the memory: that made A0/X0
good for scratch calculations and return values.

With this kind of architecture, you don't want to even create bad
addresses.

Of course, the (much younger) 80286 segmented address model had similar
qualms about invalid pointers.

-- 
David Kastrup