https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99830
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Segher Boessenkool from comment #5) > (In reply to Jakub Jelinek from comment #3) > > In normal insns such clobbers would be rejected by recog, but for > > DEBUG_INSNs we don't have strict validity tests, but guess we need to throw > > away at least the worst garbage. > > combine puts clobbers of const0_rtx in instructions precisely because > those *should* be rejected; it does it to abort a combination attempt. > So it isn't clear to me why we end up with this here? Papering over it > (as the proposed patch does) is not a good idea imho. In the end on the actual instruction the clobber is optimized away and we end up with something that is accepted. And the problem is just that the clobber is propagated into debug insns, which don't have any kind of recog, their content is intentionally much less strict that on normal insns, like it can allow e.g. SUBREGs that normally wouldn't be allowed etc. If something is too weird, dwarf2out will punt on it. But clearly the clobber is something LRA isn't able to deal with.