OSDN Git Service

* trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
authormikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Nov 2011 22:16:29 +0000 (22:16 +0000)
committermikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Nov 2011 22:16:29 +0000 (22:16 +0000)
gfc_ss::data::temp into gfc_ss_info::data.
* trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference
chains.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180872 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/fortran/trans.h

index f10419a..c8d5e7f 100644 (file)
@@ -1,6 +1,13 @@
 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
 
        * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
+       gfc_ss::data::temp into gfc_ss_info::data.
+       * trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference
+       chains.
+
+2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
        gfc_ss::data::scalar into newly created union gfc_ss_info::data,
        and rename subfield expr to value.
        * trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset,
index eef0f09..173e52b 100644 (file)
@@ -558,11 +558,11 @@ gfc_get_temp_ss (tree type, tree string_length, int dimen)
   ss_info = gfc_get_ss_info ();
   ss_info->type = GFC_SS_TEMP;
   ss_info->string_length = string_length;
+  ss_info->data.temp.type = type;
 
   ss = gfc_get_ss ();
   ss->info = ss_info;
   ss->next = gfc_ss_terminator;
-  ss->data.temp.type = type;
   ss->dimen = dimen;
   for (i = 0; i < ss->dimen; i++)
     ss->dim[i] = i;
@@ -4127,12 +4127,12 @@ gfc_conv_loop_setup (gfc_loopinfo * loop, locus * where)
 
       /* Make absolutely sure that this is a complete type.  */
       if (tmp_ss_info->string_length)
-       loop->temp_ss->data.temp.type
+       tmp_ss_info->data.temp.type
                = gfc_get_character_type_len_for_eltype
-                       (TREE_TYPE (loop->temp_ss->data.temp.type),
+                       (TREE_TYPE (tmp_ss_info->data.temp.type),
                         tmp_ss_info->string_length);
 
-      tmp = loop->temp_ss->data.temp.type;
+      tmp = tmp_ss_info->data.temp.type;
       memset (&loop->temp_ss->data.info, 0, sizeof (gfc_array_info));
       tmp_ss_info->type = GFC_SS_SECTION;
 
index 567e5a3..60708e9 100644 (file)
@@ -197,6 +197,13 @@ typedef struct gfc_ss_info
       tree value;
     }
     scalar;
+
+    /* GFC_SS_TEMP.  */
+    struct
+    {
+      tree type;
+    }
+    temp;
   }
   data;
 }
@@ -219,12 +226,6 @@ typedef struct gfc_ss
 
   union
   {
-    /* GFC_SS_TEMP.  */
-    struct
-    {
-      tree type;
-    }
-    temp;
     /* All other types.  */
     gfc_array_info info;
   }