https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51677
--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- It should be easy to white-list the main function in the -Wsuggest-attribute= checker. At the same time, I'm not sure it's necessary or that the problem is unique to main. The reasons noted in comment #0 apply to other functions as well. Defining empty functions is useful for a variety of reasons (e.g., default no-op handlers or, in C++, default no-op implementations of virtual functions). Similarly, without perfect data flow analysis across the whole program it's impossible to tell whether an extern function is ever called. Why should main be treated differently from those?