Re: [PATCH RFC] Fix ICE due to shared BLOCK node in coroutine generation [PR103328]

2022-03-30 Thread Benno Evers via Gcc-patches
> Benno, do you have write access? > > If not I can take care of this for you if you like? I do not have write access, so that would be great. I've sent a new version with added Changelog entries and your test to the list. Do you think there's a chance to get this patch backported to gcc 10? That

[PATCH] c++: Fix ICE due to shared BLOCK node in coroutine generation [PR103328]

2022-03-30 Thread Benno Evers via Gcc-patches
From: Benno Evers When finishing a function that is a coroutine, the function is transformed into a "ramp" function, and the original user-provided function body gets moved into a newly created "actor" function. In this case `current_function_decl` points to the ramp function, but `current_bindi

[PATCH RFC] Fix ICE due to shared BLOCK node in coroutine generation [PR103328]

2022-03-17 Thread Benno Evers via Gcc-patches
The coroutine transformation moves the original function body into a newly created actor function, but the block of the `current_binding_level` still points into the original function, causing the block to be shared between the two functions if it is subsequently used. This may cause havoc later on