diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2009-10-07 05:17:29 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2009-10-07 05:17:29 +0000 |
commit | 28fccf2c731d82572b7b426a001a4897d51bd087 (patch) | |
tree | 8506825ec1533162fdd9f1104888ca1eac851685 /gcc/fortran | |
parent | 66af41878b4bb9e70f89f4462479e6b8a9fa5807 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 5 |
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) |