[Patch, Fortran, OOP] PR 59414: Class array pointers: compile error on valid code (Different ranks in pointer assignment)
Janus Weil
janus@gcc.gnu.org
Sat Dec 7 18:05:00 GMT 2013
Hi all,
here is a small patch to fix a problem with class-array-valued
functions, where the rank was not determined properly. Regtestes on
x86_64-unknown-linux-gnu. Ok for trunk?
[Note: This patch only fixes the rejects-valid problem of comment 0/1,
but not the ICE of comment 2/3, which is a completely separate issue.]
Cheers,
Janus
2013-12-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/59414
* resolve.c (resolve_specific_f0): Handle CLASS-valued functions.
2013-12-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/59414
* gfortran.dg/class_result_2.f90: New.
-------------- next part --------------
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c (revision 205782)
+++ gcc/fortran/resolve.c (working copy)
@@ -2616,7 +2616,9 @@ found:
expr->ts = sym->ts;
expr->value.function.name = sym->name;
expr->value.function.esym = sym;
- if (sym->as != NULL)
+ if (sym->ts.type == BT_CLASS && CLASS_DATA (sym)->as)
+ expr->rank = CLASS_DATA (sym)->as->rank;
+ else if (sym->as != NULL)
expr->rank = sym->as->rank;
return MATCH_YES;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: class_result_2.f90
Type: text/x-fortran
Size: 426 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20131207/26ec3f47/attachment.bin>
More information about the Fortran
mailing list