aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/resolve.c15
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/proc_ptr_comp_28.f9016
4 files changed, 27 insertions, 15 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0c623dd..b8f3afe 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-09 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/47224
+ * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
+ of code.
+
2011-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/38536
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index b86c430..88acb55 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1528,7 +1528,6 @@ resolve_actual_arglist (gfc_actual_arglist *arg, procedure_type ptype,
gfc_symtree *parent_st;
gfc_expr *e;
int save_need_full_assumed_size;
- gfc_component *comp;
for (; arg; arg = arg->next)
{
@@ -1548,20 +1547,6 @@ resolve_actual_arglist (gfc_actual_arglist *arg, procedure_type ptype,
continue;
}
- if (gfc_is_proc_ptr_comp (e, &comp))
- {
- e->ts = comp->ts;
- if (e->expr_type == EXPR_PPC)
- {
- if (comp->as != NULL)
- e->rank = comp->as->rank;
- e->expr_type = EXPR_FUNCTION;
- }
- if (gfc_resolve_expr (e) == FAILURE)
- return FAILURE;
- goto argument_list;
- }
-
if (e->expr_type == EXPR_VARIABLE
&& e->symtree->n.sym->attr.generic
&& no_formal_args
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index af38101..fdef7ef 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-01-09 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/47224
+ * gfortran.dg/proc_ptr_comp_28.f90: New.
+
2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
* obj-c++.dg/gnu-api-2-class.mm: Skip for Darwin < 9.
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_comp_28.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_comp_28.f90
new file mode 100644
index 0000000..8d46fb5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_comp_28.f90
@@ -0,0 +1,16 @@
+! { dg-do compile }
+!
+! PR 47224: [F03] ICE with procedure pointer component
+!
+! Contributed by Martien Hulsen <m.a.hulsen@tue.nl>
+
+ type coefficients_t
+ procedure (real), pointer, nopass :: vfunc
+ end type
+
+ type(coefficients_t) :: coeff
+ real, dimension(3) :: x
+
+ print *, abs ( coeff%vfunc ( x(:) ) )
+
+end