PR target/61336
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 Jun 2014 16:27:41 +0000 (16:27 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 Jun 2014 16:27:41 +0000 (16:27 +0000)
        * config/alpha/alpha.c (print_operand_address): Allow symbolic
        addresses inside asms.  Use output_operand_lossage instead of
        gcc_unreachable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211139 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/alpha/alpha.c

index bc9b036..8b41457 100644 (file)
@@ -1,3 +1,10 @@
+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.
+
 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/61239
index efef1e9..7663e20 100644 (file)
@@ -5450,22 +5450,23 @@ print_operand_address (FILE *file, rtx addr)
       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,
               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);