Input file GGG.cpp: struct X; void h(X&,X&); inline void h(X&,int) {} __attribute__((noinline)) void h(X&,X&) {} Command line: g++ -c GGG.cpp Output: GGG.cpp:4:32: warning: declaration of 'void h(X&, X&)' with attribute 'noinline' follows inline declaration [-Wattributes] __attribute__((noinline)) void h(X&,X&) {} ^ GGG.cpp:3:13: note: previous definition of 'void h(X&, int)' was here inline void h(X&,int) {} Commentary: This warning seems incorrect. Previous versions of GCC do not emit this warning, even with -Wall -Wextra.
On trunk reported since r248387.