https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105989
Michal Jankovič changed:
What|Removed |Added
Attachment #53273|0 |1
is obsolete|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105989
--- Comment #4 from Michal Jankovič ---
Comment on attachment 53273
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53273
Experimental patch implementing the proposed transformation
diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105989
--- Comment #3 from Michal Jankovič ---
Created attachment 53273
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53273=edit
Experimental patch implementing the proposed transformation
This patch implements the proposed coroutine frame
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105989
Andrew Pinski changed:
What|Removed |Added
Severity|normal |enhancement
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105989
--- Comment #2 from Michal Jankovič ---
Reading through gcc/cp/coroutines.cc, it seems like the coroutine frame is
indeed composed as a flat struct with fields for all the local variables,
temps, and special stuff needed by the actor.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105989
--- Comment #1 from Michal Jankovič ---
Exploring further, this seems to be a symptom of a deeper issue - the coroutine
frame contains space for ALL variables of the coroutine, not just for the
maximally sized subset of the variables that can