Integer overflow and underflow semantics?

Iain Buclaw via Digitalmars-d digitalmars-d at puremagic.com
Mon Jul 21 23:15:19 PDT 2014


On 21 Jul 2014 22:10, "Artur Skawina via Digitalmars-d" <
digitalmars-d at puremagic.com> wrote:
>
> On 07/21/14 21:53, via Digitalmars-d wrote:
> > On Monday, 21 July 2014 at 19:33:32 UTC, Artur Skawina via
Digitalmars-d wrote:
> >> Disallowing integer overflow just at CT is not (sanely) possible
> >> in a language with D's CTFE capabilities. (Would result in code
> >> that compiles and works at runtime, but is not ctfe-able)
> >
> > I'd like to see compile time _constants_ be unbounded rational numbers
with explicit truncation. It is when you assign it to an in-memory location
that you need to worry about bounds. The same goes for calculations that
doesn't do division.
> >
> > No need to copy the bad parts of C.
>
> Actually, C/C++ could get away with treating overflow during constant
> folding as an error (or at least emitting a warning) because of the
> lack of CTFE (and no templates in C's case). The code will either
> compile or it won't.
> For D that is not possible -- if an expression is valid at run-time
> then it should be valid at compile-time (and obviously yield the same
> value).

...most of the time.

CTFE is allowed to do things at an arbitrary precision in mid-flight when
evaluating an expression.

Iain
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20140722/1229e8e9/attachment.html>


More information about the Digitalmars-d mailing list