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".