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) | ^~~~~~~~~~