[Bug fortran/50570] [4.6/4.7 Regression] Incorrect error for assignment to intent(in) pointer
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 30 07:00:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50570
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Keywords| |rejects-valid
Last reconfirmed| |2011-09-30
CC| |burnus at gcc dot gnu.org,
| |domob at gcc dot gnu.org
Ever Confirmed|0 |1
Summary|Incorrect error for |[4.6/4.7 Regression]
|assignment to intent(in) |Incorrect error for
|pointer |assignment to intent(in)
| |pointer
Target Milestone|--- |4.6.2
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-09-30 06:25:40 UTC ---
Working: 2010-09-09-r164046
Failing: 2010-09-28-r164677
Possible culprit:
r164550 | domob | 2010-09-23 10:37:54 +0200
http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164550
2010-09-23 Daniel Kraft <d@domob.eu>
PR fortran/38936
PR fortran/44044
PR fortran/45474
* expr.c (gfc_check_assign): Remove INTENT(IN) check here.
(gfc_check_pointer_assign): Ditto (and other checks removed).
(gfc_check_vardef_context): New method.
In expr.c's gfc_check_vardef_context, the problem is that for
4547 sym = e->value.function.esym ? e->value.function.esym :
e->symtree->n.sym;
4550 attr = gfc_expr_attr (e);
(gdb) p sym->attr.pointer
$3 = 1
(gdb) p attr.pointer
$1 = 0
Here, gfc_expr_attr() takes the array reference into account such that
"dummy(1)" is not pointer ...
More information about the Gcc-bugs
mailing list