aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2016-07-15 19:58:55 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2016-07-15 19:58:55 +0000
commita07b81c7422349f3a104058af3ae192565a6a6f4 (patch)
tree61b7c0ce5454c61aa9c28620d7b1f82c25a99954 /gcc/fortran
parentd1129d45b09c6fe0542f439fffda3bd4667a67a1 (diff)
downloadgcc-a07b81c7422349f3a104058af3ae192565a6a6f4.zip
gcc-a07b81c7422349f3a104058af3ae192565a6a6f4.tar.gz
gcc-a07b81c7422349f3a104058af3ae192565a6a6f4.tar.bz2
re PR fortran/62125 (Nested select type not accepted (rejects valid))
2016-07-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> Marco Restelli <mrestelli@gmail.com> PR fortran/62125 * symbol.c (select_type_insert_tmp): Recursively call self to take care of nested select type. * gfortran.dg/pr62125.f90: New test. Co-Authored-By: Marco Restelli <mrestelli@gmail.com> From-SVN: r238400
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/symbol.c6
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 51e8e2e..82e90da 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2016-07-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Marco Restelli <mrestelli@gmail.com>
+
+ PR fortran/62125
+ * symbol.c (select_type_insert_tmp): Recursively call self to take care
+ of nested select type.
+
2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
* openmp.c (gfc_match_omp_clauses): Scan for clause vector_length
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index 0ee7dec..c967f25 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -2930,7 +2930,11 @@ select_type_insert_tmp (gfc_symtree **st)
gfc_select_type_stack *stack = select_type_stack;
for (; stack; stack = stack->prev)
if ((*st)->n.sym == stack->selector && stack->tmp)
- *st = stack->tmp;
+ {
+ *st = stack->tmp;
+ select_type_insert_tmp (st);
+ return;
+ }
}