http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61044
--- Comment #1 from Dimitar Dimitrov <dinuxbg at gmail dot com> --- The unofficial PRU GCC port (https://github.com/dinuxbg/gnupru) has the same bug. I haven't tested the following patch on AVR, but a similar change seems to fix the issue for PRU: --- a/gcc/config/avr/predicates.md +++ b/gcc/config/avr/predicates.md @@ -122,7 +122,7 @@ - (match_code "code_label,label_ref,symbol_ref,plus,const") + (match_code "code_label,label_ref,symbol_ref,plus,minus,const") @@ -133,6 +133,7 @@ case SYMBOL_REF : return SYMBOL_REF_FUNCTION_P (op); case PLUS : + case MINUS :