2008-01-06 Tobias Burnus <burnus@net-b.de>
PR fortran/34689
* interface.c (compare_actual_formal): Fix intent(out) check for
function result variables.
2008-01-06 Tobias Burnus <burnus@net-b.de>
PR fortran/34689
* gfortran.dg/intent_out_4.f90: New.
From-SVN: r131359
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34689
+ * interface.c (compare_actual_formal): Fix intent(out) check for
+ function result variables.
+
2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/34387
/* Check intent = OUT/INOUT for definable actual argument. */
if ((a->expr->expr_type != EXPR_VARIABLE
- || a->expr->symtree->n.sym->attr.flavor != FL_VARIABLE)
+ || (a->expr->symtree->n.sym->attr.flavor != FL_VARIABLE
+ && a->expr->symtree->n.sym->attr.flavor != FL_PROCEDURE))
&& (f->sym->attr.intent == INTENT_OUT
|| f->sym->attr.intent == INTENT_INOUT))
{
+2008-01-06 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/34689
+ * gfortran.dg/intent_out_4.f90: New.
+
2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/34540
--- /dev/null
+! { dg-do compile }
+!
+! PR fortran/34689
+!
+! The following (cf. libgomp.fortran/appendix-a/a.33.3.f90)
+! was rejected because the intent check missed a FL_FUNCTION
+! for the result variable.
+!
+function test()
+ implicit none
+ integer :: test
+ interface
+ subroutine foo(a)
+ integer(inout) :: a
+ end subroutine foo
+ end interface
+ call foo(a)
+end function test