Hello!

Anyone else seeing this on trunk?

        if test -z "$objects"; then                           \
          echo 'int __libgcc_eh_dummy;' > eh_dummy.c;                \
          /sata/dj/gnu/newlib/h8300-elf/./gcc/xgcc 
-B/sata/dj/gnu/newlib/h8300-elf/./gcc/ -B/sata/dj/gnu/install/h8300-elf/bin/ 
-B/sata/dj/gnu/install/h8300-elf/lib/ -isystem 
/sata/dj/gnu/install/h8300-elf/include -isystem 
/sata/dj/gnu/install/h8300-elf/sys-include -g -O2 -O2  -g -O2 -DIN_GCC 
-DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  -DDF=SF -g  
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I. -I../.././gcc 
-I/sata/dj/gnu/gcc/gcc/libgcc -I/sata/dj/gnu/gcc/gcc/libgcc/. 
-I/sata/dj/gnu/gcc/gcc/libgcc/../gcc -I/sata/dj/gnu/gcc/gcc/libgcc/../include  
-DHAVE_CC_TLS  -c eh_dummy.c            \
             -o eh_dummy.o;                             \
          objects=eh_dummy.o;                           \
        fi;                                                     \
        /sata/dj/gnu/install/h8300-elf/bin/ar  rc libgcc.a $objects
/sata/dj/gnu/install/h8300-elf/bin/ranlib libgcc.a
/sata/dj/gnu/newlib/h8300-elf/./gcc/xgcc -B/sata/dj/gnu/newlib/h8300-elf/./gcc/ 
-B/sata/dj/gnu/install/h8300-elf/bin/ -B/sata/dj/gnu/install/h8300-elf/lib/ 
-isystem /sata/dj/gnu/install/h8300-elf/include -isystem 
/sata/dj/gnu/install/h8300-elf/sys-include -g -O2 -O2  -g -O2 -DIN_GCC 
-DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  -DDF=SF -g  
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I. -I../.././gcc 
-I/sata/dj/gnu/gcc/gcc/libgcc -I/sata/dj/gnu/gcc/gcc/libgcc/. 
-I/sata/dj/gnu/gcc/gcc/libgcc/../gcc -I/sata/dj/gnu/gcc/gcc/libgcc/../include  
-DHAVE_CC_TLS -o _gcov.o -MT _gcov.o -MD -MP -MF _gcov.dep -DL_gcov -c 
/sata/dj/gnu/gcc/gcc/libgcc/../gcc/libgcov.c
/sata/dj/gnu/gcc/gcc/libgcc/../gcc/libgcov.c: In function '__gcov_init':
/sata/dj/gnu/gcc/gcc/libgcc/../gcc/libgcov.c:555: warning: left shift count >= 
width of type
/sata/dj/gnu/gcc/gcc/libgcc/../gcc/libgcov.c: In function 'gcov_exit':
/sata/dj/gnu/gcc/gcc/libgcc/../gcc/libgcov.c:532: error: invalid rtl sharing 
found in the insn
(insn 2148 2147 2149 104 /sata/dj/gnu/gcc/gcc/libgcc/../gcc/libgcov.c:373 
(parallel [
            (set (subreg:HI (reg:SI 323) 0)
                (ashift:HI (subreg:HI (reg:SI 323) 0)
                    (const_int 1 [0x1])))
            (clobber (scratch:QI))
        ]) 219 {*shifthi} (expr_list:REG_EQUAL (ashift:HI (reg:HI 729 [ 
t_ix___558 ])
            (const_int 1 [0x1]))
        (nil)))
/sata/dj/gnu/gcc/gcc/libgcc/../gcc/libgcov.c:532: error: shared rtx
(subreg:HI (reg:SI 323) 0)
/sata/dj/gnu/gcc/gcc/libgcc/../gcc/libgcov.c:532: internal compiler error: 
internal consistency failure

Can you please test attached patch?

Thanks,
Uros.
Index: h8300.c
===================================================================
--- h8300.c     (revision 135265)
+++ h8300.c     (working copy)
@@ -3668,7 +3668,8 @@ expand_a_shift (enum machine_mode mode, 
              gen_rtvec (2,
                         gen_rtx_SET (VOIDmode, operands[0],
                                      gen_rtx_fmt_ee (code, mode,
-                                                     operands[0], 
operands[2])),
+                                                     copy_rtx (operands[0]),
+                                                     operands[2])),
                         gen_rtx_CLOBBER (VOIDmode,
                                          gen_rtx_SCRATCH (QImode)))));
   return true;

Reply via email to