diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2011-06-27 21:09:25 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2011-06-27 21:09:25 +0000 |
commit | a1b5eb9382a8b109567576fdad3fc458c35dc668 (patch) | |
tree | 9c72d6c4b00b3e2fec62720cf59b11be4538f558 /gcc | |
parent | dbb7247b9a209ac3afef3c5174ba552c1f941bec (diff) | |
download | gcc-a1b5eb9382a8b109567576fdad3fc458c35dc668.zip gcc-a1b5eb9382a8b109567576fdad3fc458c35dc668.tar.gz gcc-a1b5eb9382a8b109567576fdad3fc458c35dc668.tar.bz2 |
re PR target/48637 (%c in ARM inline asm leads to ICE (in arm_print_operand))
PR target/48637
* arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
asm operands.
From-SVN: r175565
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 11 |
2 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fe982b6..6ebc1ce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index efffcf8..8b9cb25 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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; |