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