subroutine foo(x) integer, allocatable :: x(:) end ---------------------- integer, allocatable :: x(:) 1 Error: ALLOCATABLE attribute conflicts with DUMMY attribute at (1) ---------------------- Combining ALLOCATABLE and DUMMY attributes is okay, IMHO. The Standard says (12.4.1.2, Actual arguments associated with dummy data objects): "If a dummy argument is allocatable or a pointer, the associated actual argument shall be polymorphic [etc etc]". IBM xlf compiler accepts this, too.
This is a F2003 extension.
Related to PR 20541.
Subject: Bug number PR 16136 A patch for this bug has been added to the patch tracker. The mailing list url for the patch is http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00173.html
Subject: Bug 16136 Author: eedelman Date: Sun Mar 5 19:24:48 2006 New Revision: 111741 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=111741 Log: fortran/ 2005-03-05 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/16136 * symbol.c (conf_std): New macro. (check_conflict): Use it to allow ALLOCATABLE dummy arguments for F2003. * trans-expr.c (gfc_conv_function_call): Pass the address of the array descriptor when dummy argument is ALLOCATABLE. * interface.c (compare_allocatable): New function. (compare_actual_formal): Use it. resolve.c (resolve_deallocate_expr, resolve_allocate_expr): Check that INTENT(IN) variables aren't (de)allocated. * gfortran.texi (Fortran 2003 status): List ALLOCATABLE dummy arguments as supported. testsuite/ 2005-03-05 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/16136 * allocatable_dummy_1.f90: New. * allocatable_dummy_2.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/allocatable_dummy_1.f90 trunk/gcc/testsuite/gfortran.dg/allocatable_dummy_2.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/gfortran.texi trunk/gcc/fortran/interface.c trunk/gcc/fortran/resolve.c trunk/gcc/fortran/symbol.c trunk/gcc/fortran/trans-expr.c trunk/gcc/testsuite/ChangeLog
Works on mainline (will become 4.2). Will (probably) not be backported to 4.1.