diff options
Diffstat (limited to 'debian/patches/pr61336.diff')
-rw-r--r-- | debian/patches/pr61336.diff | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/debian/patches/pr61336.diff b/debian/patches/pr61336.diff new file mode 100644 index 0000000..7e3e7ad --- /dev/null +++ b/debian/patches/pr61336.diff @@ -0,0 +1,40 @@ +# DP: Fix PR target/61336, taken from the trunk. + +2014-06-02 Richard Henderson <rth@redhat.com> + + 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); |