[Bug c/116130] Implement C23 N2956 paper - [[unsequenced]] and [[reproducible]] function type arguments

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jul 30 14:47:57 GMT 2024


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116130

--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 58774
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58774&action=edit
gcc15-pr116130.patch

Untested patch.  This doesn't hook it up in the middle-end with the exception
of
the simple cases (no pointer/reference arguments), which are mapped to
ECF_CONST|ECF_LOOPING_CONST_OR_PURE resp. ECF_PURE|ECF_LOOPING_CONST_OR_PURE
(unless const or pure attributes are also present).
There is no warning for the ?: case, seems we've always behaved that way
(though
perhaps we want to add some warning for it incrementally).
And there is no diagnostics of unsuitable functions.  I guess the detection of
non-stateless functions with [[unsequenced]] attribute would be easy (but we
can't require all calls to be also [[unsequenced]], so it would be just partial
warning for one function), but the rest would be pretty hard and not really
sure
what we could actually diagnose.


More information about the Gcc-bugs mailing list