libstdc++: Define noop coroutine details private and inline [PR 95917]

This moves the __noop_coro_frame type, the __noop_coro_fr global
variable, and the __dummy_resume_destroy function from namespace scope,
replacing them with private members of the specialization
coroutine_handle<noop_coroutine_promise>.

The function and variable are also declared inline, so that they
generate no code unless used.

libstdc++-v3/ChangeLog:

        PR libstdc++/95917
        * include/std/coroutine (__noop_coro_frame): Replace with
        noop_coroutine_handle::__frame.
        (__dummy_resume_destroy): Define inline in __frame.
        (__noop_coro_fr): Replace with noop_coroutine_handle::_S_fr
        and define as inline.
        * testsuite/18_support/coroutines/95917.cc: New test.

Tested powerpc64le-linux. Committed to trunk.

Reply via email to