Fix handling of unknown sizes in rtx_addr_can_trap_p
If the size passed in to rtx_addr_can_trap_p was zero, the frame handling would get the size from the mode instead. However, this too can be zero if the mode is BLKmode, i.e. if we have a BLKmode memory reference with no MEM_SIZE (which should be rare these days). This meant that the conditions for a 4-byte access at offset X were stricter than those for an access of unknown size at offset X. This patch checks whether the size is still zero, as the SYMBOL_REF handling does. gcc/ 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> * rtlanal.c (rtx_addr_can_trap_p_1): Handle unknown sizes. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r242476
This commit is contained in:
parent
29220523c1
commit
0e0af68921
2 changed files with 8 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
|
||||
Alan Hayward <alan.hayward@arm.com>
|
||||
David Sherwood <david.sherwood@arm.com>
|
||||
|
||||
* rtlanal.c (rtx_addr_can_trap_p_1): Handle unknown sizes.
|
||||
|
||||
2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
|
||||
Alan Hayward <alan.hayward@arm.com>
|
||||
David Sherwood <david.sherwood@arm.com>
|
||||
|
|
|
@ -543,6 +543,8 @@ rtx_addr_can_trap_p_1 (const_rtx x, HOST_WIDE_INT offset, HOST_WIDE_INT size,
|
|||
|
||||
if (size == 0)
|
||||
size = GET_MODE_SIZE (mode);
|
||||
if (size == 0)
|
||||
return 1;
|
||||
|
||||
if (x == frame_pointer_rtx)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue