trans.h (struct gfc_ss): New field nested_ss.
* trans.h (struct gfc_ss): New field nested_ss. * trans-expr.c (gfc_advance_se_ss_chain): Update assertion. From-SVN: r180893
This commit is contained in:
parent
f49afcb009
commit
4d6a0e3637
|
@ -1,3 +1,8 @@
|
|||
2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
|
||||
|
||||
* trans.h (struct gfc_ss): New field nested_ss.
|
||||
* trans-expr.c (gfc_advance_se_ss_chain): Update assertion.
|
||||
|
||||
2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
|
||||
|
||||
* trans-array.c (set_vector_loop_bounds): Loop over the parents.
|
||||
|
|
|
@ -92,7 +92,8 @@ gfc_advance_se_ss_chain (gfc_se * se)
|
|||
while (p != NULL)
|
||||
{
|
||||
/* Simple consistency check. */
|
||||
gcc_assert (p->parent == NULL || p->parent->ss == p->ss);
|
||||
gcc_assert (p->parent == NULL || p->parent->ss == p->ss
|
||||
|| p->parent->ss->nested_ss == p->ss);
|
||||
|
||||
/* If we were in a nested loop, the next scalarized expression can be
|
||||
on the parent ss' next pointer. Thus we should not take the next
|
||||
|
|
|
@ -249,6 +249,11 @@ typedef struct gfc_ss
|
|||
/* Non-null if the ss is part of a nested loop. */
|
||||
struct gfc_ss *parent;
|
||||
|
||||
/* If the evaluation of an expression requires a nested loop (for example
|
||||
if the sum intrinsic is evaluated inline), this points to the nested
|
||||
loop's gfc_ss. */
|
||||
struct gfc_ss *nested_ss;
|
||||
|
||||
/* The loop this gfc_ss is in. */
|
||||
struct gfc_loopinfo *loop;
|
||||
|
||||
|
|
Loading…
Reference in New Issue