diff --git a/source/basic.tex b/source/basic.tex index 299d3626f5..a813f68d9c 100644 --- a/source/basic.tex +++ b/source/basic.tex @@ -4179,12 +4179,17 @@ \end{note} \pnum +If any operand of a built-in operator that produces a prvalue +is evaluated, +is not a discarded-value expression\iref{expr.context}, and +produces an erroneous value, +then the value produced by that operator is erroneous. Except in the following cases, if an indeterminate value is produced by an evaluation, the behavior is undefined, and if an erroneous value is produced by an evaluation, the behavior is erroneous and -the result of the evaluation is the value so produced but is not erroneous: +the result of the evaluation is that erroneous value: \begin{itemize} \item If an indeterminate or erroneous value of diff --git a/source/intro.tex b/source/intro.tex index 22114ac371..5cb98d2101 100644 --- a/source/intro.tex +++ b/source/intro.tex @@ -986,10 +986,9 @@ If the selected execution contains an undefined operation, the implementation executing that program with that input may produce arbitrary additional observable behavior afterwards. -If the execution contains an operation specified as having erroneous behavior, +If the execution of an operation is specified as having erroneous behavior, the implementation is permitted to issue a diagnostic and -is permitted to terminate the execution -at an unspecified time after that operation. +is permitted to terminate the execution of the program. \pnum \recommended