From 0d19f225800e1e88c88338559a15a9b041e6364c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 12 Nov 2025 22:34:38 +0000 Subject: [PATCH] P3878R1 Standard library hardening should not use the 'observe' semantic Also fixes NB RU-016 (C++26 CD). Also fixes NB FR-001-014 (C++26 CD). Also fixes NB FR-010-113 (C++26 CD). Also fixes NB US 3-015 (C++26 CD). Also fixes NB US 61-112 (C++26 CD). --- source/lib-intro.tex | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/source/lib-intro.tex b/source/lib-intro.tex index 2958545e4a..ef791fbdf0 100644 --- a/source/lib-intro.tex +++ b/source/lib-intro.tex @@ -390,12 +390,9 @@ \item When invoking the function in a hardened implementation, prior to any other observable side effects of the function, -one or more contract assertions +contract assertions whose predicates are as described in the hardened precondition -are evaluated with a checking semantic\iref{basic.contract.eval}. -If any of these assertions is evaluated with a non-terminating semantic -and the contract-violation handler returns, -the program has undefined behavior. +are evaluated with a terminating semantic\iref{basic.contract.eval}. \item When invoking the function in a non-hardened implementation, if any hardened precondition is violated,