https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118878

            Bug ID: 118878
           Summary: [ice][avr] internal compiler error: in avr_out_plus_1,
                    at config/avr/avr.cc:8801
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gjl at gcc dot gnu.org
  Target Milestone: ---

Created attachment 60499
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60499&action=edit
C test case

The attached test case ICEs with

$ avr-gcc read-dw.c -S -mmcu=atmega8 -Os

during RTL pass: shorten
dump file: read-dw.c.361r.shorten
read-dw.c: In function 'test':
read-dw.c:59:1: internal compiler error: in avr_out_plus_1, at
config/avr/avr.cc:8801

Reason is the following insn:

(insn 84 25 122 (parallel [
     (set (reg:SI 20 r20 [orig:63 pf_14 ] [63])
          (plus:SI (reg:SI 20 r20 [orig:61 _3 ] [61])
                   (reg:SI 22 r22 [orig:56 __tmp ] [56])))
     (clobber (scratch:QI))
     (clobber (reg:CC 36 cc))
 ]) "read-dw.c":56:17 219 {*addsi3}

for which avr.cc::avr_out_plus_1() decides that such an overlap makes no sense:

      if (reg_overlap_mentioned_p (xop[0], xop[2]))
        {
          gcc_assert (REGNO (xop[0]) == REGNO (xop[2]));

Target: avr
Configured with: ../../source/gcc-master/configure --target=avr --disable-nls
--with-dwarf2 --with-gnu-as --with-gnu-ld --with-long-double=64
--disable-libcc1 --disable-shared --enable-languages=c,c++
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 15.0.1 20250212 (experimental) (GCC)

Reply via email to