! { dg-do run } ! Test fix for PR114141 ! Contributed by Steve Kargl program foo implicit none real :: y = 0.0 associate (x => log(cmplx(-1,0))) y = x%im ! Gave 'Symbol ‘x’ at (1) has no IMPLICIT type' if (int(100*y)-314 /= 0) stop 1 end associate ! Check wrinkle in comment 1 (parentheses around selector) of the PR is fixed. associate (x => ((log(cmplx(-1,1))))) y = x%im ! Gave 'The RE or IM part_ref at (1) must be applied to a ! COMPLEX expression' if (int(100*y)-235 /= 0) stop 2 end associate ! Check that more complex(pun intended!) expressions are OK. associate (x => exp (log(cmplx(-1,0))+cmplx(0,0.5))) y = x%re ! Gave 'Symbol ‘x’ at (1) has no IMPLICIT type' if (int(1000*y)+877 /= 0) stop 3 end associate ! Make sure that AIMAG intrinsic is OK. associate (x => ((log(cmplx(-1,0.5))))) y = aimag (x) if (int(100*y)-267 /= 0) stop 4 end associate end program