aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/primary.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2011-09-08 00:20:47 +0200
committerJanus Weil <janus@gcc.gnu.org>2011-09-08 00:20:47 +0200
commit6a38e151893f941011281cbf93581f8605d18005 (patch)
treec17f3e416f39964150f112a3944dd6bbee17ea63 /gcc/fortran/primary.c
parent601a5d76ca67442686facfb179aac2064003bb99 (diff)
downloadgcc-6a38e151893f941011281cbf93581f8605d18005.zip
gcc-6a38e151893f941011281cbf93581f8605d18005.tar.gz
gcc-6a38e151893f941011281cbf93581f8605d18005.tar.bz2
re PR fortran/48095 ([OOP] Invalid assignment to procedure pointer component not rejected)
2011-09-07 Janus Weil <janus@gcc.gnu.org> PR fortran/48095 * primary.c (gfc_match_structure_constructor): Handle parsing of procedure pointers components in structure constructors. * resolve.c (resolve_structure_cons): Check interface of procedure pointer components. Changed wording of some error messages. 2011-09-07 Janus Weil <janus@gcc.gnu.org> PR fortran/48095 * gfortran.dg/derived_constructor_comps_2.f90: Modified. * gfortran.dg/impure_constructor_1.f90: Modified. * gfortran.dg/proc_ptr_comp_33.f90: New. From-SVN: r178665
Diffstat (limited to 'gcc/fortran/primary.c')
-rw-r--r--gcc/fortran/primary.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index 8f3c7e5..bccf7d4 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -2418,7 +2418,10 @@ gfc_match_structure_constructor (gfc_symbol *sym, gfc_expr **result,
}
/* Match the current initializer expression. */
+ if (this_comp->attr.proc_pointer)
+ gfc_matching_procptr_assignment = 1;
m = gfc_match_expr (&comp_tail->val);
+ gfc_matching_procptr_assignment = 0;
if (m == MATCH_NO)
goto syntax;
if (m == MATCH_ERROR)