<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 5, 2023 at 9:07 AM Jim Thomas <<a href="mailto:jaswthomas@sbcglobal.net">jaswthomas@sbcglobal.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
We don’t want to say that the floating-point environment must be precise at sequence points. That would disallow optimizations like code motion and common subexpression elimination that can be safely done between function calls.<br>
<br>
- Jim Thomas<br><br></blockquote><div>+1</div><div><br></div><div>I think that technically "between" in "between function calls" needs to be defined in terms of "sequenced before". And making this precise seems both tricky and unnecessary. (The C++ standard got rid of "sequence points" long ago because none of us could define precisely enough what that wording means. I still can't. So I'm generally opposed to adding references to it.)</div><div><br></div><div>This text looks to me like it's a normative part of the standard. It doesn't look to me like it should be. Does the C standard have an easy way to make it non-normative? Presumably "between function calls" is really still much too strong, and really only an example? It only needs tobe "between function calls that might test exception flags"? But I'm not sure what this kind of negative statement means in normative text.</div><div><br></div><div>Hans</div></div></div>