diff options
Diffstat (limited to 'gcc/gimple.c')
-rw-r--r-- | gcc/gimple.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/gimple.c b/gcc/gimple.c index d3578da..24727bc 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -3264,6 +3264,11 @@ walk_stmt_load_store_addr_ops (gimple stmt, void *data, && TREE_CODE (gimple_call_chain (stmt)) == ADDR_EXPR) ret |= visit_addr (stmt, TREE_OPERAND (gimple_call_chain (stmt), 0), data); + if (visit_addr + && gimple_call_return_slot_opt_p (stmt) + && gimple_call_lhs (stmt) != NULL_TREE + && TREE_ADDRESSABLE (gimple_call_lhs (stmt))) + ret |= visit_addr (stmt, gimple_call_lhs (stmt), data); } else if (gimple_code (stmt) == GIMPLE_ASM) { |