aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Morin <mikael@gcc.gnu.org>2011-11-03 22:16:29 +0000
committerMikael Morin <mikael@gcc.gnu.org>2011-11-03 22:16:29 +0000
commit961e73ace25da06b5909b2b48e64447bea15963d (patch)
tree22d417a8230f19daadae460e5c6682167cf97c59
parent99dd5a299012fdf2c236bef659d13323f00199e3 (diff)
downloadgcc-961e73ace25da06b5909b2b48e64447bea15963d.zip
gcc-961e73ace25da06b5909b2b48e64447bea15963d.tar.gz
gcc-961e73ace25da06b5909b2b48e64447bea15963d.tar.bz2
trans.h (struct gfc_ss, [...]): Move member struct gfc_ss::data::temp into gfc_ss_info::data.
* 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. From-SVN: r180872
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/trans-array.c8
-rw-r--r--gcc/fortran/trans.h13
3 files changed, 18 insertions, 10 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index f10419a..c8d5e7f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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,
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index eef0f09..173e52b 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -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;
diff --git a/gcc/fortran/trans.h b/gcc/fortran/trans.h
index 567e5a3..60708e9 100644
--- a/gcc/fortran/trans.h
+++ b/gcc/fortran/trans.h
@@ -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;
}