On Fri, 24 Jul 2009, Dave Korn wrote:
> Joseph S. Myers wrote:
>
> > If an operation that overflows has been carried out, may the AIR abstract
> > machine then trap at any future time (if the implementation has moved or
> > copied the relevant operation to that future time)?
>
> I think that's answered on p.12 isn't it?
>
> " AIR Integers do not require Ada-style precise traps, which require that an
> exception is raised every time there is an integer overflow. In the AIR
> integer model, it is acceptable to delay catching an incorrectly represented
> value until an observation point is reached just before it either affects the
> output or causes a critical undefined behavior "
Yes, approximately; I was speculating as to how you might define abstract
machine semantics for which this document might be a rough overview, and
the potentially trapping state seems to be part of that.
Regarding observation points, I think that
printf("%d\n", INT_MAX * INT_MAX);
should naturally in this model be permitted to print the value of INT_MAX
* INT_MAX, or to trap, rather than being required to trap.
--
Joseph S. Myers
[email protected]