diff options
author | Janus Weil <janus@gcc.gnu.org> | 2011-01-18 23:40:33 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2011-01-18 23:40:33 +0100 |
commit | 2d300fac7d9aaaa9f5cb63a44b3cfc130895324d (patch) | |
tree | ebece8ac1cfec95a7fefd3af146ad3257b95f006 /gcc/fortran/trans-expr.c | |
parent | d2cd871faaa370e18d71e26bc92e25034bcbc05c (diff) | |
download | gcc-2d300fac7d9aaaa9f5cb63a44b3cfc130895324d.zip gcc-2d300fac7d9aaaa9f5cb63a44b3cfc130895324d.tar.gz gcc-2d300fac7d9aaaa9f5cb63a44b3cfc130895324d.tar.bz2 |
re PR fortran/47240 ([F03] segfault with procedure pointer component)
2011-01-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47240
* resolve.c (expression_rank): Fix rank of procedure poiner components.
* trans-expr.c (gfc_conv_procedure_call): Take care of procedure
pointer components as actual arguments.
2011-01-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47240
* gfortran.dg/proc_ptr_comp_29.f90: New.
From-SVN: r168973
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r-- | gcc/fortran/trans-expr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 42e2593..ec1e848 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -3043,8 +3043,9 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym, && fsym->attr.flavor != FL_PROCEDURE) || (fsym->attr.proc_pointer && !(e->expr_type == EXPR_VARIABLE - && e->symtree->n.sym->attr.dummy)) - || (e->expr_type == EXPR_VARIABLE + && e->symtree->n.sym->attr.dummy)) + || (fsym->attr.proc_pointer + && e->expr_type == EXPR_VARIABLE && gfc_is_proc_ptr_comp (e, NULL)) || fsym->attr.allocatable)) { |