[backport from gcc-4.7/trunk ] gcc/ 2011-06-27 Richard Earnshaw PR target/48637 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid asm operands. --- gcc-4.6.1/gcc/config/arm/arm.c.~1~ 2011-05-05 10:39:40.000000000 +0200 +++ gcc-4.6.1/gcc/config/arm/arm.c 2011-07-05 14:53:33.000000000 +0200 @@ -16143,8 +16143,17 @@ arm_print_operand (FILE *stream, rtx x, output_addr_const (stream, x); break; + case CONST: + if (GET_CODE (XEXP (x, 0)) == PLUS + && GET_CODE (XEXP (XEXP (x, 0), 0)) == SYMBOL_REF) + { + output_addr_const (stream, x); + break; + } + /* Fall through. */ + default: - gcc_unreachable (); + output_operand_lossage ("Unsupported operand for code '%c'", code); } return;