1! { dg-do compile } 2! 3! Tests the fix for PR70864 in which compiler generated temporaries received 4! the attributes of a dummy argument. This is the original testcase. 5! The simplified version by Gerhard Steinmetz is gratefully acknowledged. 6! 7! Contributed by Weiqun Zhang <weiqun.zhang@gmail.com> 8! 9module boxarray_module 10 implicit none 11 type :: BoxArray 12 integer :: i = 0 13 contains 14 procedure :: boxarray_assign 15 generic :: assignment(=) => boxarray_assign 16 end type BoxArray 17contains 18 subroutine boxarray_assign (dst, src) 19 class(BoxArray), intent(inout) :: dst 20 type (BoxArray), intent(in ) :: src 21 dst%i =src%i 22 end subroutine boxarray_assign 23end module boxarray_module 24 25module multifab_module 26 use boxarray_module 27 implicit none 28 type, public :: MultiFab 29 type(BoxArray) :: ba 30 end type MultiFab 31contains 32 subroutine multifab_swap(mf1, mf2) 33 type(MultiFab), intent(inout) :: mf1, mf2 34 type(MultiFab) :: tmp 35 tmp = mf1 36 mf1 = mf2 ! Generated an ICE in trans-decl.c. 37 mf2 = tmp 38 end subroutine multifab_swap 39end module multifab_module 40