https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96749
Iain Sandoe <iains at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |iains at gcc dot gnu.org --- Comment #4 from Iain Sandoe <iains at gcc dot gnu.org> --- Created attachment 50377 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50377&action=edit Patch under test thanks for the reports. Even though user code cannot, the compiler can generate things like: (make some temporary, use that temporary) So a compound statement that builds a temporary that we then use in the second part. When this idiom was encountered, the transforms applied to split await expressions out were producing something like { build temporary temporary use the temporary } so the middle statement was harmless, but also has no effect (hence the warning). the patch under test accounts for this idiom.