https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95518
Bug ID: 95518 Summary: [coroutines] [[maybe_unused]] does not propagate to actor() and destroy() Product: gcc Version: 10.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: bruck.michael at gmail dot com Target Milestone: --- Example with -Wall -Ofast: --- #include <coroutine> struct dummy { struct promise_type { dummy get_return_object() const noexcept { return {}; } std::suspend_never initial_suspend() const noexcept { return {}; } std::suspend_never final_suspend() const noexcept { return {}; } void return_void() const noexcept {} void unhandled_exception() const noexcept {} }; int i; // work around #95516 }; [[maybe_unused]] static dummy foo() { co_return; } int main() {} -- <source>:19:1: warning: 'void _ZL3foov.destroy(foo()::_ZL3foov.frame*)' defined but not used [-Wunused-function] 19 | } | ^ <source>:19:1: warning: 'void _ZL3foov.actor(foo()::_ZL3foov.frame*)' defined but not used [-Wunused-function]