re PR debug/44610 (VTA produces wrong variable location information)

PR debug/44610
* simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
address if the offset is unknown.

From-SVN: r161413
This commit is contained in:
Alexandre Oliva 2010-06-25 21:11:32 +00:00 committed by Alexandre Oliva
parent 01349049e8
commit e0a80069ba
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2010-06-25 Alexandre Oliva <aoliva@redhat.com>
PR debug/44610
* simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
address if the offset is unknown.
2010-06-25 Douglas B Rupp <rupp@gnat.com>
* dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.

View File

@ -208,10 +208,11 @@ avoid_constant_pool_reference (rtx x)
rtx
delegitimize_mem_from_attrs (rtx x)
{
/* MEMs without MEM_OFFSETs may have been offset, so we can't just
use their base addresses as equivalent. */
if (MEM_P (x)
&& MEM_EXPR (x)
&& (!MEM_OFFSET (x)
|| GET_CODE (MEM_OFFSET (x)) == CONST_INT))
&& MEM_OFFSET (x))
{
tree decl = MEM_EXPR (x);
enum machine_mode mode = GET_MODE (x);
@ -264,8 +265,7 @@ delegitimize_mem_from_attrs (rtx x)
{
rtx newx;
if (MEM_OFFSET (x))
offset += INTVAL (MEM_OFFSET (x));
offset += INTVAL (MEM_OFFSET (x));
newx = DECL_RTL (decl);