aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/fortran/match.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/fortran/match.c')
-rw-r--r--gcc-4.9/gcc/fortran/match.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/gcc-4.9/gcc/fortran/match.c b/gcc-4.9/gcc/fortran/match.c
index 4c4609401..b3f47a8e7 100644
--- a/gcc-4.9/gcc/fortran/match.c
+++ b/gcc-4.9/gcc/fortran/match.c
@@ -2595,7 +2595,10 @@ match_exit_cycle (gfc_statement st, gfc_exec_op op)
&& o != NULL
&& o->state == COMP_OMP_STRUCTURED_BLOCK
&& (o->head->op == EXEC_OMP_DO
- || o->head->op == EXEC_OMP_PARALLEL_DO))
+ || o->head->op == EXEC_OMP_PARALLEL_DO
+ || o->head->op == EXEC_OMP_SIMD
+ || o->head->op == EXEC_OMP_DO_SIMD
+ || o->head->op == EXEC_OMP_PARALLEL_DO_SIMD))
{
int collapse = 1;
gcc_assert (o->head->next != NULL
@@ -4564,6 +4567,30 @@ gfc_free_namelist (gfc_namelist *name)
}
+/* Free an OpenMP namelist structure. */
+
+void
+gfc_free_omp_namelist (gfc_omp_namelist *name)
+{
+ gfc_omp_namelist *n;
+
+ for (; name; name = n)
+ {
+ gfc_free_expr (name->expr);
+ if (name->udr)
+ {
+ if (name->udr->combiner)
+ gfc_free_statement (name->udr->combiner);
+ if (name->udr->initializer)
+ gfc_free_statement (name->udr->initializer);
+ free (name->udr);
+ }
+ n = name->next;
+ free (name);
+ }
+}
+
+
/* Match a NAMELIST statement. */
match