diff options
author | Janus Weil <janus@gcc.gnu.org> | 2009-01-16 13:03:51 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2009-01-16 13:03:51 +0100 |
commit | 6e0d2de7cbeacd8cd5b6121fcfaecd4f59edc1da (patch) | |
tree | 96162b336e41edda3555f07921d678132a5db943 /gcc/fortran/expr.c | |
parent | 27d62fa48ebe95d491dfa048beda55d30a37bd9b (diff) | |
download | gcc-6e0d2de7cbeacd8cd5b6121fcfaecd4f59edc1da.zip gcc-6e0d2de7cbeacd8cd5b6121fcfaecd4f59edc1da.tar.gz gcc-6e0d2de7cbeacd8cd5b6121fcfaecd4f59edc1da.tar.bz2 |
re PR fortran/38152 (procedure pointers as module variables)
2009-01-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/38152
* expr.c (gfc_check_pointer_assign): Allow use-associated procedure
pointers as lvalue.
* trans-decl.c (get_proc_pointer_decl,gfc_create_module_variable):
Enable procedure pointers as module variables.
2009-01-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/38152
* gfortran.dg/proc_ptr_13.f90: New.
From-SVN: r143430
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r-- | gcc/fortran/expr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index 8a992ca..5d77262 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -3043,7 +3043,8 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue) } if (lvalue->symtree->n.sym->attr.flavor == FL_PROCEDURE - && lvalue->symtree->n.sym->attr.use_assoc) + && lvalue->symtree->n.sym->attr.use_assoc + && !lvalue->symtree->n.sym->attr.proc_pointer) { gfc_error ("'%s' in the pointer assignment at %L cannot be an " "l-value since it is a procedure", |