[PATCH 2/6] Add returns_zero_on_success/failure attributes
Wed Nov 17 22:43:58 GMT 2021
On Wed, 17 Nov 2021, Prathamesh Kulkarni via Gcc-patches wrote:
> More generally, would it be a good idea to provide attributes for
> mod/ref anaylsis ?
> So sth like:
> void foo(void) __attribute__((modifies(errno)));
> which would state that foo modifies errno, but neither reads nor
> modifies any other global var.
> void bar(void) __attribute__((reads(errno)))
> which would state that bar only reads errno, and doesn't modify or
> read any other global var.
Many math.h functions are const except for possibly setting errno,
possibly raising floating-point exceptions (which might have other effects
when using alternate exception handling) and possibly reading the rounding
mode. To represent that, it might be useful for such attributes to be
able to describe state (such as the floating-point environment) that
doesn't correspond to a C identifier. (errno tends to be a macro, so
referring to it as such in an attribute may be awkward as well.)
(See also <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2825.htm> with
some proposals for features to describe const/pure-like properties of
Joseph S. Myers
More information about the Gcc-patches