diff mbox series

tree-optimization/109848 - fix TARGET_MEM_REF store from CTOR simplification

Message ID 20230515084047.475AF138E5@imap2.suse-dmz.suse.de
State New
Headers show
Series tree-optimization/109848 - fix TARGET_MEM_REF store from CTOR simplification | expand

Commit Message

Richard Biener May 15, 2023, 8:40 a.m. UTC
I've put the preparation stmt in the wrong place.

Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.

	PR tree-optimization/109848
	* tree-ssa-forwprop.cc (pass_forwprop::execute): Put the
	TARGET_MEM_REF address preparation before the store, not
	before the CTOR.
---
 gcc/tree-ssa-forwprop.cc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc
index e63d2ab82c9..06f19868ade 100644
--- a/gcc/tree-ssa-forwprop.cc
+++ b/gcc/tree-ssa-forwprop.cc
@@ -3841,7 +3841,10 @@  pass_forwprop::execute (function *fun)
 		  if (auto_var_p (use_lhs))
 		    DECL_NOT_GIMPLE_REG_P (use_lhs) = 1;
 		  else if (TREE_CODE (use_lhs) == TARGET_MEM_REF)
-		    use_lhs = prepare_target_mem_ref_lvalue (use_lhs, &gsi);
+		    {
+		      gimple_stmt_iterator gsi2 = gsi_for_stmt (use_stmt);
+		      use_lhs = prepare_target_mem_ref_lvalue (use_lhs, &gsi2);
+		    }
 		  for (unsigned HOST_WIDE_INT bi = 0; bi < n; bi += elt_w)
 		    {
 		      unsigned HOST_WIDE_INT ci = bi / elt_w;