<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);"><b>From: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;">JeanHeyd Meneide <phdofthehouse@gmail.com><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);"><b>Subject: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;"><b>[SC22WG14.32508] The [[reproducible]] Example 3, §6.7.13.8.3</b><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);"><b>Date: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;">July 18, 2025 at 3:33:01 PM PDT<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);"><b>To: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;">wg14 <sc22wg14@open-std.org><br></span></div><br><div><div>Hi Everybody,<br><br>     The C Floating Point group met during its May meeting and<br>reviewed the use of [[reproducible]] in conjunction with this code<br>snippet in the standard N3550 in EXAMPLE 3, §6.7.13.8.3:<br><br>    inline double distance (double const x[static 2]) [[reproducible]] {<br>        #pragma STDC FP_CONTRACT OFF<br>        #pragma STDC FENV_ROUND  FE_TONEAREST<br>        // We assert that sqrt will not be called with invalid arguments<br>        // and the result only depends on the argument value.<br>        extern typeof(sqrt) [[unsequenced]] sqrt;<br>        return sqrt(x[0]*x[0] + x[1]*x[1]);<br>    }<br><br>The problem, unfortunately, is that this is not enough to make it<br>impossible to observe the effect of calling `sqrt` due to certain<br>floating point exceptions / floating point flags. While there is a way<br>in TS 18661-5 to turn off those flags from occurring with<br><br>#pragma STDC FENV_EXCEPT FE_ALL_EXCEPT NO_FLAG<br><br>     That is not in the main text of the standard, and therefore is<br>unusable. CFP's recommendation is to remove this snippet since the<br>code is incorrect and cannot be made correct without invalidating the<br>purpose of the example, and so I've done so.<br><br>     We are going to need a new example for a [[reproducible]]<br>attribute, here. Preferably, something that shows its ability to be<br>applied to functions; it could perhaps be used with a fixed-point<br>bounding box collision test function, or something similar<br>lightweight.<br><br>     Let me know if you have an idea or example for what could replace it.<br><br>Sincerely,<br>JeanHeyd<br></div></div></blockquote></div><br></body></html>