https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95337
Bug ID: 95337 Summary: duplicated deprecated attribute gives incorrectly duplicated diagnostic Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nathan at gcc dot gnu.org Target Milestone: --- Created attachment 48607 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48607&action=edit yesterday, no, testcase. That's the word If a declaration has two (different) deprecated attributes. We diagnose twice (good), but use the same message both times (bad): zathras:3>g++ -std=c++2a -c d.cc d.cc: In function ‘void g()’: d.cc:5:6: warning: ‘void f()’ is deprecated: dob [-Wdeprecated-declarations] 5 | f (); | ^ d.cc:1:6: note: declared here 1 | void f [[deprecated("bob")]] [[deprecated("dob")]] (); | ^ d.cc:5:6: warning: ‘void f()’ is deprecated: dob [-Wdeprecated-declarations] 5 | f (); | ^ d.cc:1:6: note: declared here 1 | void f [[deprecated("bob")]] [[deprecated("dob")]] (); | ^ check whether noignore has the same problem