https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83758
--- Comment #3 from seurer at gcc dot gnu.org --- The code below is were the assertion is failing (the line after // WDS test). I was experimenting a bit and commented out the assertion so I could see what it was guarding and ... nothing happened, at least I don't think so. The compiler built and there weren't any unusual failures in the go test cases. Could it be the assertion isn't really needed? static inline rtx vt_expand_var_loc_chain (variable *var, bitmap regs, void *data, bool *pendrecp) { struct expand_loc_callback_data *elcd = (struct expand_loc_callback_data *) data; location_chain *loc, *next; rtx result = NULL; int first_child, result_first_child, last_child; bool pending_recursion; rtx loc_from = NULL; struct elt_loc_list *cloc = NULL; expand_depth depth = { 0, 0 }, saved_depth = elcd->depth; int wanted_entryvals, found_entryvals = 0; /* Clear all backlinks pointing at this, so that we're not notified while we're active. */ loc_exp_dep_clear (var); retry: if (var->onepart == ONEPART_VALUE) { cselib_val *val = CSELIB_VAL_PTR (dv_as_value (var->dv)); // WDS test // gcc_checking_assert (cselib_preserved_value_p (val)); cloc = val->locs; }