aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2009-10-07 05:17:29 +0000
committerPaul Thomas <pault@gcc.gnu.org>2009-10-07 05:17:29 +0000
commit28fccf2c731d82572b7b426a001a4897d51bd087 (patch)
tree8506825ec1533162fdd9f1104888ca1eac851685 /gcc/fortran
parent66af41878b4bb9e70f89f4462479e6b8a9fa5807 (diff)
downloadgcc-28fccf2c731d82572b7b426a001a4897d51bd087.zip
gcc-28fccf2c731d82572b7b426a001a4897d51bd087.tar.gz
gcc-28fccf2c731d82572b7b426a001a4897d51bd087.tar.bz2
re PR fortran/41613 (ICE for gfortran.dg/dynamic_dispatch_*.f03 on powerpc-apple-darwin)
2009-10-07 Paul Thomas <pault@gcc.gnu.org> PR fortran/41613 * resolve.c (check_class_members): Reset compcall.assign. From-SVN: r152513
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/resolve.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 24891ab..f833c20 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-07 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/41613
+ * resolve.c (check_class_members): Reset compcall.assign.
+
2009-10-05 Paul Thomas <pault@gcc.gnu.org>
* trans-expr.c (select_class_proc): New function.
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 2f0972b..8acd580 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -5132,6 +5132,11 @@ check_class_members (gfc_symbol *derived)
e->value.compcall.tbp = tbp->n.tb;
e->value.compcall.name = tbp->name;
+ /* Let the original expresssion catch the assertion in
+ resolve_compcall, since this flag does not appear to be reset or
+ copied in some systems. */
+ e->value.compcall.assign = 0;
+
/* Do the renaming, PASSing, generic => specific and other
good things for each class member. */
class_try = (resolve_compcall (e, fcn_flag) == SUCCESS)