https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114012
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Ever confirmed|0 |1 Last reconfirmed| |2024-02-20 Status|UNCONFIRMED |NEW --- Comment #1 from anlauf at gcc dot gnu.org --- The dump-tree shows for the assignment i = -i : { struct __class__STAR_t val.7; val.7._data = (void *) neg (&i)._data; val.7._vptr = (struct __vtype__STAR * {ref-all}) neg (&i)._vptr; val.7._len = 0; i = {CLOBBER}; assign (&i, &val.7); } We should evaluate neg (&i) only once.