On 28/06/2021 21:06, Martin Sebor via Gcc wrote: > I wrote an article for the Red Hat Developer blog about how > to annotate code to get the most out of GCC's access checking > warnings like -Warray-bounds, -Wformat-overflow, and > -Wstringop-overflow. The article published last week: > > https://developers.redhat.com/articles/2021/06/25/use-source-level-annotations-help-gcc-detect-buffer-overflows >
Thanks for that write-up - and of course thank you to whoever implemented these attributes! The caveat that the access attributes are lost when a function is inlined is an important one. As a user who appreciates all the checks I can get, it is disappointing - but I assume there are good reasons for that limitation. I can merely hope that will change in future gcc versions. I believe it would make sense to add this information to the gcc manual page for common function attributes. There are quite a number of attributes that are useful for static checking, such as "warn_unused_result" and "nonnull". Are these also dropped if the function is inlined?