diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bfe381cea104e97e0c7704f5cbcdc44d9f0cb9d1..bacbe9d6929e3d9cea4e0ef4c69742adb9e48061 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2006-01-08  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-structalias.c (get_constraint_for): Remove
+	anyoffset argument.
+	(get_constraint_for_component_ref): Likewise.
+	(do_deref): Likewise.
+	(get_constraint_for): Likewise.
+	(do_structure_copy): Likewise.
+	(handle_ptr_arith): Likewise.
+	(find_func_aliases): Likewise.  Remove unused need_anyoffset
+	variable.
+
 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
 	    Kaz Kojima  <kkojima@gcc.gnu.org>
 
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 0e2032c481a53dc519b618f50b6b72169235b22d..63ba8d4deb84e2094591a41da5901c92d83862e9 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -393,7 +393,7 @@ struct constraint_expr
 typedef struct constraint_expr ce_s;
 DEF_VEC_O(ce_s);
 DEF_VEC_ALLOC_O(ce_s, heap);
-static void get_constraint_for (tree, VEC(ce_s, heap) **, bool *);
+static void get_constraint_for (tree, VEC(ce_s, heap) **);
 static void do_deref (VEC (ce_s, heap) **);
 
 /* Our set constraints are made up of two constraint expressions, one
@@ -2343,8 +2343,7 @@ offset_overlaps_with_access (const unsigned HOST_WIDE_INT fieldpos,
 /* Given a COMPONENT_REF T, return the constraint_expr for it.  */
 
 static void
-get_constraint_for_component_ref (tree t, VEC(ce_s, heap) **results, 
-				  bool *anyoffset)
+get_constraint_for_component_ref (tree t, VEC(ce_s, heap) **results)
 {
   tree orig_t = t;
   HOST_WIDE_INT bitsize = -1;
@@ -2372,7 +2371,7 @@ get_constraint_for_component_ref (tree t, VEC(ce_s, heap) **results,
     }
  
   t = get_ref_base_and_extent (t, &bitpos, &bitsize, &bitmaxsize);
-  get_constraint_for (t, results, anyoffset);
+  get_constraint_for (t, results);
   result = VEC_last (ce_s, *results);
 
   gcc_assert (beforelength + 1 == VEC_length (ce_s, *results));
@@ -2387,12 +2386,6 @@ get_constraint_for_component_ref (tree t, VEC(ce_s, heap) **results,
     {
       result->offset = bitpos;
     }
-  /* FIXME: Handle the DEREF case.  */
-  else if (anyoffset && result->type != DEREF)
-    {
-      result->offset = 0;
-      *anyoffset = true;
-    }
   else
     {
       result->var = anything_id;
@@ -2470,7 +2463,7 @@ do_deref (VEC (ce_s, heap) **constraints)
 /* Given a tree T, return the constraint expression for it.  */
 
 static void
-get_constraint_for (tree t, VEC (ce_s, heap) **results, bool *anyoffset)
+get_constraint_for (tree t, VEC (ce_s, heap) **results)
 {
   struct constraint_expr temp;
 
@@ -2512,7 +2505,7 @@ get_constraint_for (tree t, VEC (ce_s, heap) **results, bool *anyoffset)
 	      struct constraint_expr *c;
 	      unsigned int i;
 
-	      get_constraint_for (TREE_OPERAND (t, 0), results, anyoffset);
+	      get_constraint_for (TREE_OPERAND (t, 0), results);
 	      for (i = 0; VEC_iterate (ce_s, *results, i, c); i++)
 		{
 		  if (c->type == DEREF)
@@ -2569,14 +2562,14 @@ get_constraint_for (tree t, VEC (ce_s, heap) **results, bool *anyoffset)
 	  {
 	  case INDIRECT_REF:
 	    {
-	      get_constraint_for (TREE_OPERAND (t, 0), results, anyoffset);
+	      get_constraint_for (TREE_OPERAND (t, 0), results);
 	      do_deref (results);
 	      return;
 	    }
 	  case ARRAY_REF:
 	  case ARRAY_RANGE_REF:
 	  case COMPONENT_REF:
-	    get_constraint_for_component_ref (t, results, anyoffset);
+	    get_constraint_for_component_ref (t, results);
 	    return;
 	  default:
 	    {
@@ -2603,7 +2596,7 @@ get_constraint_for (tree t, VEC (ce_s, heap) **results, bool *anyoffset)
 	      if (!(POINTER_TYPE_P (TREE_TYPE (t))
 		    && ! POINTER_TYPE_P (TREE_TYPE (op))))
 		{
-		  get_constraint_for (op, results, anyoffset);
+		  get_constraint_for (op, results);
 		  return;
 		}
 
@@ -2625,7 +2618,7 @@ get_constraint_for (tree t, VEC (ce_s, heap) **results, bool *anyoffset)
 	  {
 	  case PHI_NODE:	   
 	    {
-	      get_constraint_for (PHI_RESULT (t), results, anyoffset);
+	      get_constraint_for (PHI_RESULT (t), results);
 	      return;
 	    }
 	    break;
@@ -2823,8 +2816,8 @@ do_structure_copy (tree lhsop, tree rhsop)
   unsigned HOST_WIDE_INT lhssize;
   unsigned HOST_WIDE_INT rhssize;
 
-  get_constraint_for (lhsop, &lhsc, NULL);
-  get_constraint_for (rhsop, &rhsc, NULL);
+  get_constraint_for (lhsop, &lhsc);
+  get_constraint_for (rhsop, &rhsc);
   gcc_assert (VEC_length (ce_s, lhsc) == 1);
   gcc_assert (VEC_length (ce_s, rhsc) == 1);
   lhs = *(VEC_last (ce_s, lhsc));
@@ -3167,7 +3160,7 @@ handle_ptr_arith (VEC (ce_s, heap) *lhsc, tree expr)
   op0 = TREE_OPERAND (expr, 0);
   op1 = TREE_OPERAND (expr, 1);
 
-  get_constraint_for (op0, &temp, NULL);
+  get_constraint_for (op0, &temp);
   if (POINTER_TYPE_P (TREE_TYPE (op0))
       && TREE_CODE (TREE_TYPE (TREE_TYPE (op0))) == RECORD_TYPE
       && TREE_CODE (op1) == INTEGER_CST)
@@ -3231,10 +3224,10 @@ find_func_aliases (tree origt)
 	  
 	  /* For a phi node, assign all the arguments to
 	     the result.  */
-	  get_constraint_for (PHI_RESULT (t), &lhsc, NULL);
+	  get_constraint_for (PHI_RESULT (t), &lhsc);
 	  for (i = 0; i < PHI_NUM_ARGS (t); i++)
 	    { 
-	      get_constraint_for (PHI_ARG_DEF (t, i), &rhsc, NULL);
+	      get_constraint_for (PHI_ARG_DEF (t, i), &rhsc);
 	      for (j = 0; VEC_iterate (ce_s, lhsc, j, c); j++)
 		{
 		  struct constraint_expr *c2;
@@ -3307,7 +3300,7 @@ find_func_aliases (tree origt)
 	  struct constraint_expr lhs ;
 	  struct constraint_expr *rhsp;
 
-	  get_constraint_for (arg, &rhsc, NULL);
+	  get_constraint_for (arg, &rhsc);
 	  if (TREE_CODE (decl) != FUNCTION_DECL)
 	    {
 	      lhs.type = DEREF;
@@ -3335,7 +3328,7 @@ find_func_aliases (tree origt)
 	  struct constraint_expr *lhsp;
 	  unsigned int j = 0;
 	  
-	  get_constraint_for (lhsop, &lhsc, NULL);
+	  get_constraint_for (lhsop, &lhsc);
 	  if (TREE_CODE (decl) != FUNCTION_DECL)
 	    {
 	      rhs.type = DEREF;
@@ -3372,7 +3365,7 @@ find_func_aliases (tree origt)
 	      || AGGREGATE_TYPE_P (TREE_TYPE (lhsop))
 	      || TREE_CODE (rhsop) == CALL_EXPR)
 	    {
-	      get_constraint_for (lhsop, &lhsc, NULL);
+	      get_constraint_for (lhsop, &lhsc);
 	      switch (TREE_CODE_CLASS (TREE_CODE (rhsop)))
 		{
 		  /* RHS that consist of unary operations,
@@ -3386,7 +3379,6 @@ find_func_aliases (tree origt)
 		  case tcc_unary:
 		      {
 			unsigned int j;
-			bool need_anyoffset = false;
 			tree strippedrhs = rhsop;
 			tree rhstype;
 
@@ -3395,7 +3387,7 @@ find_func_aliases (tree origt)
 			STRIP_NOPS (strippedrhs);
 			rhstype = TREE_TYPE (strippedrhs);
 			
-			get_constraint_for (rhsop, &rhsc, &need_anyoffset);
+			get_constraint_for (rhsop, &rhsc);
 			if (TREE_CODE (strippedrhs) == ADDR_EXPR
 			    && AGGREGATE_TYPE_P (TREE_TYPE (rhstype)))
 			  {
@@ -3449,7 +3441,7 @@ find_func_aliases (tree origt)
 			unsigned int j;
 
 			gcc_assert (VEC_length (ce_s, rhsc) == 0);
-			get_constraint_for (op, &rhsc, NULL);
+			get_constraint_for (op, &rhsc);
 			for (j = 0; VEC_iterate (ce_s, lhsc, j, c); j++)
 			  {
 			    struct constraint_expr *c2;