! { dg-do compile } ! ! Tests the fix for PR70864 in which compiler generated temporaries received ! the attributes of a dummy argument. This is the original testcase. ! The simplified version by Gerhard Steinmetz is gratefully acknowledged. ! ! Contributed by Weiqun Zhang ! module boxarray_module implicit none type :: BoxArray integer :: i = 0 contains procedure :: boxarray_assign generic :: assignment(=) => boxarray_assign end type BoxArray contains subroutine boxarray_assign (dst, src) class(BoxArray), intent(inout) :: dst type (BoxArray), intent(in ) :: src dst%i =src%i end subroutine boxarray_assign end module boxarray_module module multifab_module use boxarray_module implicit none type, public :: MultiFab type(BoxArray) :: ba end type MultiFab contains subroutine multifab_swap(mf1, mf2) type(MultiFab), intent(inout) :: mf1, mf2 type(MultiFab) :: tmp tmp = mf1 mf1 = mf2 ! Generated an ICE in trans-decl.c. mf2 = tmp end subroutine multifab_swap end module multifab_module