| ! { dg-do run } | |
| ! | |
| ! PR fortran/66089 | |
| ! Check that we do create a temporary for C(1) below in the assignment | |
| ! to C. | |
| type :: t | |
| integer :: c | |
| end type t | |
| type(t), dimension(5) :: b, c | |
| b = t(7) | |
| c = t(13) | |
| c = plus(c(1), b) | |
| ! print *, c | |
| if (any(c%c /= 20)) STOP 1 | |
| contains | |
| elemental function plus(lhs, rhs) | |
| type(t), intent(in) :: lhs, rhs | |
| type(t) :: plus | |
| plus%c = lhs%c + rhs%c | |
| end function plus | |
| end |