https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109914
Bug ID: 109914
Summary: --suggest-attribute=pure misdiagnoses static functions
Product: gcc
Version: 13.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: bruno at clisp dot org
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Created attachment 55125
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55125&action=edit
test case
GCC's --suggest-attribute=pure diagnoses static functions, even though the
'pure' attribute is useless for static functions (after all, the compiler has
deduced the property on its own). This is leading to my having to litter code
with '__attribute__ (pure)' declarations merely to pacify GCC. GCC should treat
the 'pure' attribute like other attributes (e.g., malloc, const), and should
issue the diagnostic only for non-static functions where the attribute is in
fact useful.
How to reproduce:
$ gcc --version
gcc (GCC) 13.1.0
...
$ gcc -Wsuggest-attribute=pure -O2 -S file-has-acl.c
file-has-acl.c: In function ‘have_xattr’:
file-has-acl.c:3385:14: warning: function might be candidate for attribute
‘pure’ if it is known to return normally [-Wsuggest-attribute=pure]
3385 | static _Bool have_xattr (char const *attr, char const *listbuf, ssize_t
listsize)
| ^~~~~~~~~~