https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107797
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- The artificial COMPOUND_EXPR here comes from build_new_1: if (init_expr) rval = build2 (COMPOUND_EXPR, TREE_TYPE (rval), init_expr, rval); if (cookie_expr) rval = build2 (COMPOUND_EXPR, TREE_TYPE (rval), cookie_expr, rval); I think a few years ago I experimented with TREE_NO_WARNING, but that didn't work. But now we have suppress_warning et al so I may give it another shot.