> -----Original Message----- > From: Eric Botcazou [mailto:ebotca...@adacore.com] > Sent: Monday, April 18, 2011 4:57 AM > To: gcc-patches@gcc.gnu.org > Subject: [AVR] Couple of tweaks > > Hi, > > attached is a couple of tweaks to the AVR back-end that we have in our > tree: > > 1. libgcc cannot be built with RTL checking; the error is > > /home/eric/svn/gcc/libgcc/../gcc/unwind-dw2-fde.c: In function > 'search_object': > /home/eric/svn/gcc/libgcc/../gcc/unwind-dw2-fde.c:992:1: internal compiler > error: RTL check: expected elt 0 type 'e' or 'u', have 's' (rtx > symbol_ref) in > print_operand_address, at config/avr/avr.c:1310 > Please submit a full bug report, > with preprocessed source if appropriate. > See <http://gcc.gnu.org/bugs.html> for instructions. > make[4]: *** [unwind-dw2-fde.o] Error 1 > > This is an invalid RTL manipulation in print_operand_address. > > > 2. avr_legitimate_address_p accepts SUBREGs in addresses in non-strict > mode. > This can make the job of reload impossible given the scarcity of > POINTER_REGS, > for example for "fat pointer" types in Ada, which are structures made up > of 2 > pointers and aligned enough to have SImode. > > > Lightly tested on the mainline, but we use them in production for our 4.5- > based > compiler. OK for the mainline? > > > 2011-04-18 Eric Botcazou <ebotca...@adacore.com> > > * config/avr/avr.c (avr_legitimate_address_p): Always reject > SUBREGs. > (print_operand_address): Fix invalid RTL manipulation. > >
Have you run the regression test suite for the AVR for this patch? Eric Weddington