Add var in push_fields_onto_fieldstack
authorTom de Vries <tom@codesourcery.com>
Tue, 27 Oct 2015 07:09:58 +0000 (07:09 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Tue, 27 Oct 2015 07:09:58 +0000 (07:09 +0000)
2015-10-27  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
field_type.

From-SVN: r229403

gcc/ChangeLog
gcc/tree-ssa-structalias.c

index 0a2e2ad62322985e6afa2a4d9f7447de606d16d5..bad27b54f91a07976e114c0ae34d2e4209eb2396 100644 (file)
@@ -1,3 +1,8 @@
+2015-10-27  Tom de Vries  <tom@codesourcery.com>
+
+       * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
+       field_type.
+
 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
 
        * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
index 63a3d0265e63f5a501b85511e821aa7d8b80cda7..5e070bcb4a830ce4fa891bd6b7a34429c5bab56f 100644 (file)
@@ -5313,13 +5313,14 @@ push_fields_onto_fieldstack (tree type, vec<fieldoff_s> *fieldstack,
       {
        bool push = false;
        HOST_WIDE_INT foff = bitpos_of_field (field);
+       tree field_type = TREE_TYPE (field);
 
        if (!var_can_have_subvars (field)
-           || TREE_CODE (TREE_TYPE (field)) == QUAL_UNION_TYPE
-           || TREE_CODE (TREE_TYPE (field)) == UNION_TYPE)
+           || TREE_CODE (field_type) == QUAL_UNION_TYPE
+           || TREE_CODE (field_type) == UNION_TYPE)
          push = true;
        else if (!push_fields_onto_fieldstack
-                   (TREE_TYPE (field), fieldstack, offset + foff)
+                   (field_type, fieldstack, offset + foff)
                 && (DECL_SIZE (field)
                     && !integer_zerop (DECL_SIZE (field))))
          /* Empty structures may have actual size, like in C++.  So
@@ -5372,8 +5373,8 @@ push_fields_onto_fieldstack (tree type, vec<fieldoff_s> *fieldstack,
                e.may_have_pointers = true;
                e.only_restrict_pointers
                  = (!has_unknown_size
-                    && POINTER_TYPE_P (TREE_TYPE (field))
-                    && TYPE_RESTRICT (TREE_TYPE (field)));
+                    && POINTER_TYPE_P (field_type)
+                    && TYPE_RESTRICT (field_type));
                fieldstack->safe_push (e);
              }
          }