[Bug fortran/51948] [4.6/4.7 Regression][OOP] Rejects valid: Function result value in MOVE_ALLOC, nested in SELECT TYPE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51948 --- Comment #5 from Tobias Burnus 2012-01-24 08:35:15 UTC --- Author: burnus Date: Tue Jan 24 08:35:10 2012 New Revision: 183469 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=183469 Log: 2012-01-24 Tobias Burnus PR fortran/51948 * check.c (variable_check): Fix checking for result variables and deeply nested BLOCKs. 2012-01-24 Tobias Burnus PR fortran/51948 * gfortran.dg/move_alloc_12.f90: New. Added: branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/move_alloc_12.f90 Modified: branches/gcc-4_6-branch/gcc/fortran/ChangeLog branches/gcc-4_6-branch/gcc/fortran/check.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
[Bug fortran/51948] [4.6/4.7 Regression][OOP] Rejects valid: Function result value in MOVE_ALLOC, nested in SELECT TYPE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51948 Tobias Burnus changed: What|Removed |Added CC||burnus at gcc dot gnu.org --- Comment #4 from Tobias Burnus 2012-01-24 08:13:34 UTC --- (In reply to comment #3) > FIXED. Well, the first part of comment 0 is not. I filled a new bug for for it: PR 51977.
[Bug fortran/51948] [4.6/4.7 Regression][OOP] Rejects valid: Function result value in MOVE_ALLOC, nested in SELECT TYPE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51948 Tobias Burnus changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #3 from Tobias Burnus 2012-01-23 21:17:26 UTC --- FIXED.
[Bug fortran/51948] [4.6/4.7 Regression][OOP] Rejects valid: Function result value in MOVE_ALLOC, nested in SELECT TYPE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51948 --- Comment #2 from Tobias Burnus 2012-01-23 20:38:27 UTC --- Author: burnus Date: Mon Jan 23 20:38:23 2012 New Revision: 183453 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=183453 Log: 2012-01-23 Tobias Burnus PR fortran/51948 * check.c (variable_check): Fix checking for result variables and deeply nested BLOCKs. 2012-01-23 Tobias Burnus PR fortran/51948 * gfortran.dg/move_alloc_12.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/move_alloc_12.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/check.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/51948] [4.6/4.7 Regression][OOP] Rejects valid: Function result value in MOVE_ALLOC, nested in SELECT TYPE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51948 Tobias Burnus changed: What|Removed |Added Target Milestone|--- |4.6.3 Summary|[OOP] Rejects valid:|[4.6/4.7 Regression][OOP] |Polymorphic arguments in|Rejects valid: Function |MOVE_ALLOC |result value in MOVE_ALLOC, ||nested in SELECT TYPE --- Comment #1 from Tobias Burnus 2012-01-23 11:43:18 UTC --- The second example is wrong - and it works after fixing it: s/func/func2/. This program compiles with GCC 4.5 (and fails with 4.6/4.7) - thus, I marked the PR as regression. Better example (still based on periodic_6th_order.F90). The SELECT TYPE is crucial, a simple ASSOCIATE or BLOCK won't do: call move_alloc (x, func) 1 Error: 'to' argument of 'move_alloc' intrinsic at (1) must be a variable The program type :: t end type t contains function func(x, y) class(t) :: y ! Dummy variable type(t), allocatable :: func ! Can also be CLASS type(t), allocatable :: x ! Can also be CLASS ! call move_alloc (x, func) ! <<< Works select type (y) type is(t) call move_alloc (x, func) ! << Error (but no select variable involved) end select end function end