]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/61336 (ICE on alpha: in print_operand_address, at config/alpha/alpha...
authorRichard Henderson <rth@redhat.com>
Mon, 2 Jun 2014 16:27:41 +0000 (09:27 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 2 Jun 2014 16:27:41 +0000 (09:27 -0700)
PR target/61336

        * config/alpha/alpha.c (print_operand_address): Allow symbolic
        addresses inside asms.  Use output_operand_lossage instead of
        gcc_unreachable.

From-SVN: r211139

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

index bc9b0368e8d0083e37a9822fac54a154e2c82567..8b4145743d34dfc3d692f75835dc5df4d512a182 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 efef1e982d386624be43290c4093d27bc5aeba9e..7663e20ea53a1bce23996431881534d3b557f46b 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);