C++ PATCH for c++/60364 - noreturn after first decl not diagnosed (v2)
Jakub Jelinek
jakub@redhat.com
Sun Jun 16 16:19:00 GMT 2019
On Sun, Jun 16, 2019 at 12:10:37PM -0400, Marek Polacek wrote:
> > Guess I will really have to make the changes to treat [[noreturn]] similarly
> > to e.g. [[nodiscard]], so that cxx11_attribute_p works.
>
> Thus. Changes I've made:
> * don't treat [[noreturn]] as an equivalent to __attribute__((noreturn));
> * for that I had to adjust decl_attributes, it wasn't preserving the
> C++11 form (a list in another list); fix shadowing while at it;
> * the above turned up two spots that were wrongly accessing TREE_PURPOSE
> directly instead of using get_attribute_name;
> * give error only for [[noreturn]] but not for __attribute__((noreturn))
> or [[gnu::noreturn]].
>
> Bootstrapped/regtested on x86_64-linux, ok for trunk?
I'd prefer to defer review of this to Jason, just want to note that I don't
see any testsuite coverage on mixing declarations with different forms of
attributes ([[noreturn]] on one decl and __attribute__((noreturn)) or
[[gnu::noreturn]] on another one or vice versa.
Jakub
More information about the Gcc-patches
mailing list