2007-03-24 Paul Thomas <pault@gcc.gnu.org>
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 24 Mar 2007 14:17:34 +0000 (14:17 +0000)
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 24 Mar 2007 14:17:34 +0000 (14:17 +0000)
PR fortran/31215
* trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
int result that is non-zero if the expression is the function
result.  Only the characteristics of the result expression
can be used in a procedure interface, so simplify LEN in situ
using its character length.

PR fortran/31219
PR fortran/31200
* trans-expr.c (gfc_conv_function_call): Do not use
gfc_conv_expr_reference for actual pointer function with formal
target because a temporary is created that does not transfer
the reference correctly.  Do not indirect formal pointer
functions since it is the function reference that is needed.

2007-03-24  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/31219
* gfortran.dg/pointer_function_actual_1.f90: New test.

PR fortran/31200
* gfortran.dg/pointer_function_actual_2.f90: New test.

PR fortran/31215
* gfortran.dg/result_in_spec_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123184 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pointer_function_actual_1.f90

index ee5faa7..99c67fc 100644 (file)
@@ -7,7 +7,7 @@
        can be used in a procedure interface, so simplify LEN in situ
        using its character length.
 
-       PR fortran/31219
+       PR fortran/31209
        PR fortran/31200
        * trans-expr.c (gfc_conv_function_call): Do not use
        gfc_conv_expr_reference for actual pointer function with formal
index 4b1505e..b5049ac 100644 (file)
@@ -1,6 +1,6 @@
 2007-03-24  Paul Thomas  <pault@gcc.gnu.org>
 
-       PR fortran/31219
+       PR fortran/31209
        * gfortran.dg/pointer_function_actual_1.f90: New test.
 
        PR fortran/31200
index 91c340c..b3cb272 100644 (file)
@@ -1,5 +1,5 @@
 ! { dg-do run }
-! Tests the fix for PR31219, in which an ICE would result because
+! Tests the fix for PR31209, in which an ICE would result because
 ! the reference to the pointer function f would be indirected, as
 ! if it were the result that is being passed.
 !