This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[tree-ssa] Fix folding of *&VAR in get_expr_operands


Obvious, but nasty.  We were creating shared operands when folding *&VAR
in get_expr_operands.  Instead of creating an operand for the current
operand pointer, we were creating an operand with the address of the
&VAR expression we were folding.


Diego.


	* tree-dfa.c (get_expr_operands): Don't create shared operands when
	folding *&VAR expressions.

Index: tree-dfa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-dfa.c,v
retrieving revision 1.1.4.149
diff -d -u -p -d -c -p -r1.1.4.149 tree-dfa.c
*** tree-dfa.c	25 Aug 2003 02:44:23 -0000	1.1.4.149
--- tree-dfa.c	25 Aug 2003 18:40:24 -0000
*************** get_expr_operands (tree stmt, tree *expr
*** 366,372 ****
  	    *expr_p = build (ARRAY_REF, TREE_TYPE (expr), var,
  			     integer_zero_node);
  
! 	  add_stmt_operand (&TREE_OPERAND (ptr, 0), stmt, flags, prev_vops);
  	  return;
  	}
        else if (TREE_CONSTANT (ptr))
--- 368,374 ----
  	    *expr_p = build (ARRAY_REF, TREE_TYPE (expr), var,
  			     integer_zero_node);
  
! 	  add_stmt_operand (expr_p, stmt, flags, prev_vops);
  	  return;
  	}
        else if (TREE_CONSTANT (ptr))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]