Oops. The validation was there, but PATTERN was applied before that. Noticeable only with rtl-checking (for example as in the report: "--enable-checking=yes,rtl") as this statement was only a (one of many) straggling olde-C declare-and-initialize-at-beginning-of-block thing.
PR target/110144 * config/cris/cris.cc (cris_postdbr_cmpelim): Don't apply PATTERN to insn before validating it. --- gcc/config/cris/cris.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/cris/cris.cc b/gcc/config/cris/cris.cc index 7fca2af085a7..f04f501326e7 100644 --- a/gcc/config/cris/cris.cc +++ b/gcc/config/cris/cris.cc @@ -375,7 +375,6 @@ cris_postdbr_cmpelim () for (insn = get_insns (); insn; insn = next) { rtx_insn *outer_insn = insn; - rtx pat = PATTERN (insn); next = NEXT_INSN (outer_insn); @@ -389,6 +388,7 @@ cris_postdbr_cmpelim () if (!NONDEBUG_INSN_P (insn)) continue; + rtx pat = PATTERN (insn); /* Consider filled delay slots; there might be a comparison there. It's only the second insn in a sequence that is interesting. */ -- 2.30.2