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 ...