On Sat, Jun 15, 2019 at 10:29:17AM -0400, Marek Polacek wrote: > [dcl.attr.noreturn] says "The first declaration of a function shall specify > the > noreturn attribute if any declaration of that function specifies the noreturn > attribute" meaning that we should diagnose > > void func (); > void func [[noreturn]] (); > > but we do not. I'd been meaning to issue a hard error for [[noreturn]] and > only a warning for __attribute__((noreturn)) but then I found out that we > treat [[noreturn]] exactly as the GNU attribute, and so cxx11_attribute_p > returns false for it, so I decided to make it a pedwarn for all the cases. > A pedwarn counts as a diagnostic, so we'd be conforming still. > > Bootstrapped/regtested on x86_64-linux, ok for trunk?
IMHO we should treat __attribute__((noreturn)) as before without any warnings, just [[noreturn]] that way. There is nothing wrong on declaring it just on second or following declaration, it is an optimization attribute. Jakub