https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107280
--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> --- We crash in cxx_eval_store_expression. *valp for 'str', the VAR_DECL, used to be {.str=""} so in the !refs->is_empty () loop we'd go to the if (TREE_CODE (*valp) == STRING_CST) branch when processing the .str initializer. But now *valp is {.str=VCE<char[8]>("")} so we crash on no_zero_init = CONSTRUCTOR_NO_CLEARING (*valp); So far it seems to me that we just need to strip the location wrapper.