https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98401

David Sicilia <dpsicilia at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dpsicilia at gmail dot com

--- Comment #2 from David Sicilia <dpsicilia at gmail dot com> ---
I believe I've just run into this as well.  In some cases (which I don't know
how to describe) when I co_await on a temporary I get an error that manifests
as a sanitizer error (in my build):

"runtime error: member call on misaligned address 0x00000095c55e for type
'struct optional', which requires 8 byte alignment."

When I store the awaitable first in a local variable, then co_await on that,
the issue goes away.

Unfortunately I have not managed to produce a minimal reproducer yet, so not
sure how much this helps, but it would seem that gcc's handling of co_wait'ing
on temporaries needs to be looked at.

Also want to point out that with Milo Brandt's reproducer, it has different
output between gcc 10.2 and gcc trunk:

  gcc 10.2:  https://godbolt.org/z/rPdY9f
  gcc trunk: https://godbolt.org/z/Y1adoq

The gcc 10.2 output looks correct to me, so it could be a regression?  That
said, I observed my issue on gcc 10.2 (not trunk), so it may not be a
regression.

Reply via email to