| ! { dg-do run } |
| ! PR fortran/100551 - Passing return value to class(*) dummy argument |
| |
| program p |
| implicit none |
| integer :: result |
| result = 1 |
| result = test ( (result)) ! works |
| if (result /= 1) stop 1 |
| result = test (int (result)) ! issue 1 |
| ! write(*,*) result |
| if (result /= 1) stop 2 |
| result = test (f (result)) ! issue 2 |
| ! write(*,*) result |
| if (result /= 2) stop 3 |
| contains |
| integer function test(x) |
| class(*), intent(in) :: x |
| select type (x) |
| type is (integer) |
| test = x |
| class default |
| test = -1 |
| end select |
| end function test |
| integer function f(x) |
| integer, intent(in) :: x |
| f = 2*x |
| end function f |
| end program |