https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106502
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed| |2022-08-01 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (void) __builtin_puts (OBJ_TYPE_REF(*(((const struct error_category *) std::_V2::system_category ())->_vptr.error_category + 16);(const struct error_category)(const struct error_category *) std::_V2::system_category ()->2B) ((const struct error_category *) std::_V2::system_category ())) >>>>>; Confirmed. with the const, the front-end didn't wrap the function call with a SAVE_EXPR so it was duplicated three times with the OBJ_TYPE_REF call.