diff options
Diffstat (limited to 'gcc/tree-dfa.c')
-rw-r--r-- | gcc/tree-dfa.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index c60e107..0bc9f41 100644 --- a/gcc/tree-dfa.c +++ b/gcc/tree-dfa.c @@ -880,19 +880,19 @@ get_ref_base_and_extent (tree exp, HOST_WIDE_INT *poffset, case TARGET_MEM_REF: /* Hand back the decl for MEM[&decl, off]. */ - if (TMR_SYMBOL (exp)) + if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR) { - /* Via the variable index or base we can reach the + /* Via the variable index or index2 we can reach the whole object. */ - if (TMR_INDEX (exp) || TMR_BASE (exp)) + if (TMR_INDEX (exp) || TMR_INDEX2 (exp)) { - exp = TREE_OPERAND (TMR_SYMBOL (exp), 0); + exp = TREE_OPERAND (TMR_BASE (exp), 0); bit_offset = 0; maxsize = -1; goto done; } if (integer_zerop (TMR_OFFSET (exp))) - exp = TREE_OPERAND (TMR_SYMBOL (exp), 0); + exp = TREE_OPERAND (TMR_BASE (exp), 0); else { double_int off = mem_ref_offset (exp); @@ -904,7 +904,7 @@ get_ref_base_and_extent (tree exp, HOST_WIDE_INT *poffset, if (double_int_fits_in_shwi_p (off)) { bit_offset = double_int_to_shwi (off); - exp = TREE_OPERAND (TMR_SYMBOL (exp), 0); + exp = TREE_OPERAND (TMR_BASE (exp), 0); } } } @@ -1044,9 +1044,9 @@ get_addr_base_and_unit_offset (tree exp, HOST_WIDE_INT *poffset) case TARGET_MEM_REF: /* Hand back the decl for MEM[&decl, off]. */ - if (TMR_SYMBOL (exp)) + if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR) { - if (TMR_INDEX (exp) || TMR_BASE (exp)) + if (TMR_INDEX (exp) || TMR_INDEX2 (exp)) return NULL_TREE; if (!integer_zerop (TMR_OFFSET (exp))) { @@ -1054,7 +1054,7 @@ get_addr_base_and_unit_offset (tree exp, HOST_WIDE_INT *poffset) gcc_assert (off.high == -1 || off.high == 0); byte_offset += double_int_to_shwi (off); } - exp = TREE_OPERAND (TMR_SYMBOL (exp), 0); + exp = TREE_OPERAND (TMR_BASE (exp), 0); } goto done; |