On Fri, 7 Mar 2025, Tejas Belagod wrote: > Support TARGET_MEM_REFs when walking subtress searching for ADDR_EXPR. This > scenario presents itself when walking MEM_REF subtrees looking for addr-taken > entities during the execute_update_addresses_taken () pass where address-taken > bitmaps are updated.
This is wrong - an ADDR_EXPR in TMR_BASE does not make the object address-taken. The issue you are running into must be elsewhere. Richard. > gcc/ChangeLog: > > * gimple-walk.cc (walk_stmt_load_store_addr_ops): Support > TARGET_MEM_REF tree op in the address-tree walker. > --- > gcc/gimple-walk.cc | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/gcc/gimple-walk.cc b/gcc/gimple-walk.cc > index eceda41778d..7fb38d7d2c2 100644 > --- a/gcc/gimple-walk.cc > +++ b/gcc/gimple-walk.cc > @@ -803,6 +803,10 @@ walk_stmt_load_store_addr_ops (gimple *stmt, void *data, > && TREE_CODE (OBJ_TYPE_REF_OBJECT (rhs)) == ADDR_EXPR) > ret |= visit_addr (stmt, TREE_OPERAND (OBJ_TYPE_REF_OBJECT (rhs), > 0), arg, data); > + else if (TREE_CODE (rhs) == TARGET_MEM_REF > + && TREE_CODE (TMR_BASE (rhs)) == ADDR_EXPR) > + ret |= visit_addr (stmt, TREE_OPERAND (TMR_BASE (rhs), > + 0), arg, data); > else if (TREE_CODE (rhs) == CONSTRUCTOR) > { > unsigned int ix; > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)