# DP: Fix PR target/61336, taken from the trunk. 2014-06-02 Richard Henderson PR target/61336 * config/alpha/alpha.c (print_operand_address): Allow symbolic addresses inside asms. Use output_operand_lossage instead of gcc_unreachable. --- a/src/gcc/config/alpha/alpha.c +++ b/src/gcc/config/alpha/alpha.c @@ -5450,12 +5450,13 @@ offset = INTVAL (addr); break; -#if TARGET_ABI_OPEN_VMS case SYMBOL_REF: + gcc_assert(TARGET_ABI_OPEN_VMS || this_is_asm_operands); fprintf (file, "%s", XSTR (addr, 0)); return; case CONST: + gcc_assert(TARGET_ABI_OPEN_VMS || this_is_asm_operands); gcc_assert (GET_CODE (XEXP (addr, 0)) == PLUS && GET_CODE (XEXP (XEXP (addr, 0), 0)) == SYMBOL_REF); fprintf (file, "%s+" HOST_WIDE_INT_PRINT_DEC, @@ -5462,10 +5463,10 @@ XSTR (XEXP (XEXP (addr, 0), 0), 0), INTVAL (XEXP (XEXP (addr, 0), 1))); return; - -#endif + default: - gcc_unreachable (); + output_operand_lossage ("invalid operand address"); + return; } fprintf (file, HOST_WIDE_INT_PRINT_DEC "($%d)", offset, basereg);