[Bug fortran/37504] Wrongly rejects: unprotected_pointer => protected_pointer
burnus at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Sep 13 14:50:00 GMT 2008
------- Comment #1 from burnus at gcc dot gnu dot org 2008-09-13 14:48 -------
First patch - completely untested/uncompiled:
Index: expr.c
===================================================================
--- expr.c (Revision 140340)
+++ expr.c
@@ -3053 +3053,2 @@ gfc_check_pointer_assign (gfc_expr *lval
- if (attr.is_protected && attr.use_assoc)
+ if (attr.is_protected && attr.use_assoc
+ && !(attr.pointer || attr.proc_pointer))
I don't quite understand why one gets "Error: PROTECTED at (1) only allowed in
specification part of a module" for the following example.
module m
implicit none
integer, pointer, protected :: protected_pointer
integer, target, protected :: protected_target
end module m
program p
use m
implicit none
integer, pointer :: unprotected_pointer
unprotected_pointer => protected_target ! OK, is rejected
unprotected_pointer => protected_pointer ! WRONG, is wrongly REJECTED
protected_pointer => unprotected_pointer ! OK, is rejected, BUT MATCH ERROR
end program p
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37504
More information about the Gcc-bugs
mailing list