https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97712
Bug ID: 97712 Summary: Attribute nodiscard in virtual methods is ignored Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pacoarjonilla at yahoo dot es Target Milestone: --- The standard attribute [[nodiscard]] is ignored if the function is virtual. Versions GNU C++ trunk and GNU C++ 10.2 fails to issue a warning on the following snippet: >>>>>>>>>>> struct B { [[nodiscard]] virtual int f() = 0; }; struct D : public B { [[nodiscard]] int f() override {return 1;} }; int main() { B * b = new D; b->f(); // GNU C++ does not warn about discarded value } <<<<<<<<<<<<< Clang does issue a warning appropriately.