https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115624
Bug ID: 115624 Summary: '-Wnrvo' is not an option that controls warnings Product: gcc Version: 14.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: albrecht.guendel at web dot de Target Milestone: --- Hi, the new -Wnrvo warning is an amazing diagnostic. However it does not play well with the #pragma GCC diagnostic directive. Yet. Test-Case: https://godbolt.org/z/Tq8e8zPx8 For the sake of completeness, here is the code: using GCC 14.1 with "-Wnrvo" option #include <string> #pragma GCC diagnostic ignored "-Wnrvo" std::string no_nrvo(int i) { std::string ret{}; if (i % 2) return {}; return ret; } Current behavior: warning: '-Wnrvo' is not an option that controls warnings [-Wpragmas] warning: not eliding copy on return in 'std::string no_nrvo(int)' [-Wnrvo] Expected behavior: accept the "#pragma GCC diagnostic ignored" and do not diagnose the missed optimization.