Commit b573c9d6 by Alessandro Fanfarillo Committed by Tobias Burnus

module.c (mio_array_spec): Don't read as->lower for assumed-rank arrays.

2012-07-26  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
            Tobias Burnus  <burnus@net-b.de>

        * module.c (mio_array_spec): Don't read as->lower for
        assumed-rank arrays.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r189881
parent 1fae9801
2012-07-26 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
Tobias Burnus <burnus@net-b.de>
* module.c (mio_array_spec): Don't read as->lower for
assumed-rank arrays.
2012-07-25 Tobias Burnus <burnus@net-b.de> 2012-07-25 Tobias Burnus <burnus@net-b.de>
* trans-types.c (gfc_real16_is_float128): Fix spelling * trans-types.c (gfc_real16_is_float128): Fix spelling
......
...@@ -2359,9 +2359,15 @@ mio_array_spec (gfc_array_spec **asp) ...@@ -2359,9 +2359,15 @@ mio_array_spec (gfc_array_spec **asp)
if (iomode == IO_OUTPUT) if (iomode == IO_OUTPUT)
{ {
int rank;
if (*asp == NULL) if (*asp == NULL)
goto done; goto done;
as = *asp; as = *asp;
/* mio_integer expects nonnegative values. */
rank = as->rank > 0 ? as->rank : 0;
mio_integer (&rank);
} }
else else
{ {
...@@ -2372,20 +2378,23 @@ mio_array_spec (gfc_array_spec **asp) ...@@ -2372,20 +2378,23 @@ mio_array_spec (gfc_array_spec **asp)
} }
*asp = as = gfc_get_array_spec (); *asp = as = gfc_get_array_spec ();
mio_integer (&as->rank);
} }
mio_integer (&as->rank);
mio_integer (&as->corank); mio_integer (&as->corank);
as->type = MIO_NAME (array_type) (as->type, array_spec_types); as->type = MIO_NAME (array_type) (as->type, array_spec_types);
if (iomode == IO_INPUT && as->type == AS_ASSUMED_RANK)
as->rank = -1;
if (iomode == IO_INPUT && as->corank) if (iomode == IO_INPUT && as->corank)
as->cotype = (as->type == AS_DEFERRED) ? AS_DEFERRED : AS_EXPLICIT; as->cotype = (as->type == AS_DEFERRED) ? AS_DEFERRED : AS_EXPLICIT;
for (i = 0; i < as->rank + as->corank; i++) if (as->rank > 0)
{ for (i = 0; i < as->rank + as->corank; i++)
mio_expr (&as->lower[i]); {
mio_expr (&as->upper[i]); mio_expr (&as->lower[i]);
} mio_expr (&as->upper[i]);
}
done: done:
mio_rparen (); mio_rparen ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment