re PR fortran/47224 ([F03] ICE with procedure pointer component)
authorJanus Weil <janus@gcc.gnu.org>
Sun, 9 Jan 2011 21:01:38 +0000 (22:01 +0100)
committerJanus Weil <janus@gcc.gnu.org>
Sun, 9 Jan 2011 21:01:38 +0000 (22:01 +0100)
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  Janus Weil  <janus@gcc.gnu.org>

PR fortran/47224
* gfortran.dg/proc_ptr_comp_28.f90: New.

From-SVN: r168618

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/proc_ptr_comp_28.f90 [new file with mode: 0644]

index 0c623dd4857715edf6c12bd5e6bdb9d526c3972b..b8f3afe475653c022829df71fa8f39a767485a1a 100644 (file)
@@ -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
index b86c430d34a4499233f73708528c079ffdd924f4..88acb55bc317fda648ae54480578350ade1ff53c 100644 (file)
@@ -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
index af3810119d800b2c9ebb07cbae5da30d089727f1..fdef7efea881deb509fb2c34bf32ba560f52d9c4 100644 (file)
@@ -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 (file)
index 0000000..8d46fb5
--- /dev/null
@@ -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