checkedint call removal

Timon Gehr via Digitalmars-d digitalmars-d at puremagic.com
Fri Aug 1 22:59:13 PDT 2014


On 08/02/2014 05:34 AM, Andrew Godfrey wrote:
> Suppose I call some logging function which has a faulty assertion in it.
> What about Walter's position prevents that assertion's effects from
> escaping the logging function and infecting my code?

Nothing. Undefined behaviour is completely non-modular.

> I know cross-module
> optimization is hard hence this may be unlikely,

Inlining may happen.

> but still it shows
> something missing.
>
> I know Walter has said repeatedly that at this point the program is
> invalid, Implying that it deserves whatever happens to it. I suspect
> this is a subtopic we should be discussing more directly. What are the
> boundaries?

The semantics that are proposed to be pulled into the language spec are 
currently summarized as:

- In non-release mode, an assertion failure will abort the program 
(maybe by throwing an Error).

- In release mode, an assertion failure leads to undefined behaviour.

I.e. I think there aren't any 'boundaries', unless I am misunderstanding 
this term.


More information about the Digitalmars-d mailing list