OSDN Git Service

2005-08-10 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / tree-ssa-structalias.c
index 2a10a8d..13b9751 100644 (file)
@@ -1594,7 +1594,7 @@ perform_var_substitution (constraint_graph_t graph)
          unsigned int w;
          weight = get_graph_weights (graph, *ce);
        
-         /* We can't eliminate variables that have non-zero weighted
+         /* We can't eliminate variables that have nonzero weighted
             edges between them.  */
          if (bitmap_other_than_zero_bit_set (weight))
            {
@@ -2718,7 +2718,7 @@ update_alias_info (tree stmt, struct alias_info *ai)
    1- If the constraint for PTR is ADDRESSOF for a non-structure
       variable, then we can use it directly because adding or
       subtracting a constant may not alter the original ADDRESSOF
-      constraing (i.e., pointer arithmetic may not legally go outside
+      constraint (i.e., pointer arithmetic may not legally go outside
       an object's boundaries).
 
    2- If the constraint for PTR is ADDRESSOF for a structure variable,
@@ -2972,6 +2972,7 @@ push_fields_onto_fieldstack (tree type, VEC(fieldoff_s,heap) **fieldstack,
     if (TREE_CODE (field) == FIELD_DECL)
       {
        bool push = false;
+       int pushed = 0;
        
        if (has_union 
            && (TREE_CODE (TREE_TYPE (field)) == QUAL_UNION_TYPE
@@ -2980,7 +2981,7 @@ push_fields_onto_fieldstack (tree type, VEC(fieldoff_s,heap) **fieldstack,
        
        if (!var_can_have_subvars (field))
          push = true;
-       else if (!(push_fields_onto_fieldstack
+       else if (!(pushed = push_fields_onto_fieldstack
                   (TREE_TYPE (field), fieldstack,
                    offset + bitpos_of_field (field), has_union))
                 && DECL_SIZE (field)
@@ -2999,6 +3000,8 @@ push_fields_onto_fieldstack (tree type, VEC(fieldoff_s,heap) **fieldstack,
            pair->offset = offset + bitpos_of_field (field);
            count++;
          }
+       else
+         count += pushed;
       }
 
   return count;
@@ -3324,7 +3327,7 @@ find_what_p_points_to (tree p)
              if (vi->is_artificial_var)
                {
                  /* FIXME.  READONLY should be handled better so that
-                    flow insensitive aliasing can disregard writeable
+                    flow insensitive aliasing can disregard writable
                     aliases.  */
                  if (vi->id == nothing_id)
                    pi->pt_null = 1;