aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2011-02-14 23:17:44 +0100
committerJanus Weil <janus@gcc.gnu.org>2011-02-14 23:17:44 +0100
commit01efe923a3e625157653652d13c15836bb3a8c41 (patch)
tree3e4ac8864f0b66a11e2e978a6bbb586b774e40ee
parentc9e71b36cfef620a506f37e5922f1cf68c7869a8 (diff)
downloadgcc-01efe923a3e625157653652d13c15836bb3a8c41.zip
gcc-01efe923a3e625157653652d13c15836bb3a8c41.tar.gz
gcc-01efe923a3e625157653652d13c15836bb3a8c41.tar.bz2
re PR fortran/47730 ([OOP] ICE on invalid source in connection with SELECT TYPE)
2011-02-14 Janus Weil <janus@gcc.gnu.org> PR fortran/47730 * parse.c (gfc_build_block_ns): Commit 'block@' symbol. 2011-02-14 Janus Weil <janus@gcc.gnu.org> PR fortran/47730 * gfortran.dg/select_type_22.f03: New. From-SVN: r170157
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/parse.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/select_type_22.f0317
4 files changed, 28 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index db0069e..8b4f63f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,10 @@
2011-02-14 Janus Weil <janus@gcc.gnu.org>
+ PR fortran/47730
+ * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
+
+2011-02-14 Janus Weil <janus@gcc.gnu.org>
+
PR fortran/47728
* class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
arrays.
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index b51e12b..7fc3dca 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -3154,6 +3154,7 @@ gfc_build_block_ns (gfc_namespace *parent_ns)
t = gfc_add_flavor (&my_ns->proc_name->attr, FL_LABEL,
my_ns->proc_name->name, NULL);
gcc_assert (t == SUCCESS);
+ gfc_commit_symbol (my_ns->proc_name);
}
if (parent_ns->proc_name)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cd73643..3d21c83 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-02-14 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/47730
+ * gfortran.dg/select_type_22.f03: New.
+
2011-02-14 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/regress/enum1.C: New.
diff --git a/gcc/testsuite/gfortran.dg/select_type_22.f03 b/gcc/testsuite/gfortran.dg/select_type_22.f03
new file mode 100644
index 0000000..68d2ff6
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/select_type_22.f03
@@ -0,0 +1,17 @@
+! { dg-do compile }
+!
+! PR 47330: [OOP] ICE on invalid source in connection with SELECT TYPE
+!
+! Contributed by Andrew Benson <abenson@its.caltech.edu>
+
+ type treeNode
+ end type
+contains
+ subroutine proc1 (thisNode)
+ class (treeNode), target :: thisNode
+ select type (thisNode)
+ type is (treeNode)
+ workNode => thisNode ! { dg-error "Non-POINTER in pointer association context" }
+ end select
+ end subroutine
+end