coroutine: preserve this->container before calling dtor #2246
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
in
intermediate_task
, we intend to destroy the task right after extracting the value from it, and then callawaiter.process()
. but GCC-14 warns at seeing this:it believes that after returning from the destructor of
intermediate_task
, the instance is in an "uninitialized" state, so if we reference any of its member variables. we could have undefined behavior. this is a false alarm, as the destructor does not change the value ofcontainer
reference. but this could be still confusing at first glance. so, to silence the warning, let's preserve thecontainer
before calling the destructor, and use the preserved reference to callawaiter::process()
.