OSDN Git Service

PR target/48637
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Jun 2011 21:09:25 +0000 (21:09 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Jun 2011 21:09:25 +0000 (21:09 +0000)
* arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
asm operands.

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

gcc/ChangeLog
gcc/config/arm/arm.c

index fe982b6..6ebc1ce 100644 (file)
@@ -1,3 +1,9 @@
+2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/48637
+       * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
+       asm operands.
+
 2011-06-27  Jan Hubicka  <jh@suse.cz>
 
        * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of node
index efffcf8..8b9cb25 100644 (file)
@@ -16242,8 +16242,17 @@ arm_print_operand (FILE *stream, rtx x, int code)
          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;