diff options
author | Janus Weil <janus@gcc.gnu.org> | 2012-10-06 16:03:08 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2012-10-06 16:03:08 +0200 |
commit | 5e25600e6e4c363389f3d09b2c5065f339381556 (patch) | |
tree | 8b5f6a4997def8a67753130c28df0e6192d477ac /gcc/fortran | |
parent | 46591697e191ac8fae688de3eb51a5262eeb121a (diff) | |
download | gcc-5e25600e6e4c363389f3d09b2c5065f339381556.zip gcc-5e25600e6e4c363389f3d09b2c5065f339381556.tar.gz gcc-5e25600e6e4c363389f3d09b2c5065f339381556.tar.bz2 |
re PR fortran/54832 ([OOP] Type-bound operator not picked up with RESULT variable)
2012-10-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/54832
* resolve.c (resolve_fl_derived0): Correctly copy the 'class_ok'
attribute for proc-ptr components with RESULT variable.
2012-10-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/54832
* gfortran.dg/typebound_operator_17.f90: New.
From-SVN: r192160
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index c8f5c2b..7a3092a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2012-10-06 Janus Weil <janus@gcc.gnu.org> + PR fortran/54832 + * resolve.c (resolve_fl_derived0): Correctly copy the 'class_ok' + attribute for proc-ptr components with RESULT variable. + +2012-10-06 Janus Weil <janus@gcc.gnu.org> + PR fortran/45521 * interface.c (generic_correspondence): Implement additional distinguishability criteria of F08. diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 7c30cba..722e036 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -12022,6 +12022,7 @@ resolve_fl_derived0 (gfc_symbol *sym) c->attr.pointer = ifc->result->attr.pointer; c->attr.dimension = ifc->result->attr.dimension; c->as = gfc_copy_array_spec (ifc->result->as); + c->attr.class_ok = ifc->result->attr.class_ok; } else { @@ -12030,6 +12031,7 @@ resolve_fl_derived0 (gfc_symbol *sym) c->attr.pointer = ifc->attr.pointer; c->attr.dimension = ifc->attr.dimension; c->as = gfc_copy_array_spec (ifc->as); + c->attr.class_ok = ifc->attr.class_ok; } c->ts.interface = ifc; c->attr.function = ifc->attr.function; @@ -12041,7 +12043,6 @@ resolve_fl_derived0 (gfc_symbol *sym) c->attr.recursive = ifc->attr.recursive; c->attr.always_explicit = ifc->attr.always_explicit; c->attr.ext_attr |= ifc->attr.ext_attr; - c->attr.class_ok = ifc->attr.class_ok; /* Replace symbols in array spec. */ if (c->as) { |