https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117209
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Summary|ICE: verify_gimple failed |[13/14/15 Regression] ICE: |with asan. |verify_gimple failed with | |asan. Last reconfirmed| |2024-10-18 Target Milestone|--- |13.4 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Slightly better testcase: ``` struct a { char b; }; void c(void); int d; __attribute__((returns_twice, const)) int e(struct a); void h() { struct a *f; int *g; if (d) c(); *g = e(*f); } ``` Note e needs to be either pure or const too. I am thinking the best way to solve this is add a new copy of the struct beforehand but I am not sure if that would work for some C++ code where some structs are not "copiable".