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

Reply via email to