! { dg-do run }
! Tests the fix for PR35759 and PR35756 in which the dependencies
! led to an incorrect use of the "simple where", gfc_trans_where_3.
!
! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
!
  logical :: la(6) = (/(2*(i/2) /= i, i = 1, 6)/), lb(6)
  CALL PR35759
  CALL PR35756
!
! The first version of the fix caused this to regress as pointed
! out by Dominique d'Humieres
!
  lb = la
  where(la)
    la = .false.
  elsewhere
    la = .true.
  end where
  if (any(la .eqv. lb)) STOP 1
CONTAINS
  subroutine PR35759
    integer UDA1L(6)
    integer ::  UDA1R(6), expected(6) = (/2,0,5,0,3,0/)
    LOGICAL LDA(5)
    UDA1L(1:6) = 0
    uda1r = (/1,2,3,4,5,6/)
    lda = (/ (i/2*2 .ne. I, i=1,5) /)
    WHERE (LDA)
      UDA1L(1:5) = UDA1R(2:6)
    ELSEWHERE
      UDA1L(2:6) = UDA1R(6:2:-1)
    ENDWHERE
    if (any (expected /= uda1l)) STOP 1
  END subroutine

  SUBROUTINE PR35756
    INTEGER  ILA(10), CLA(10)
    LOGICAL  LDA(10)
    ILA = (/ (I, i=1,10) /)
    LDA = (/ (i/2*2 .ne. I, i=1,10) /)
    WHERE(LDA)
      CLA = 10
    ELSEWHERE
      CLA = 2
    ENDWHERE
    WHERE(LDA)
      ILA = R_MY_MAX_I(ILA)
    ELSEWHERE
      ILA = R_MY_MIN_I(ILA)
    ENDWHERE
    IF (any (CLA /= ILA)) STOP 2
  end subroutine

  INTEGER FUNCTION R_MY_MAX_I(A)
    INTEGER  ::  A(:)
    R_MY_MAX_I = MAXVAL(A)
  END FUNCTION R_MY_MAX_I

  INTEGER FUNCTION R_MY_MIN_I(A)
    INTEGER  ::  A(:)
    R_MY_MIN_I = MINVAL(A)
  END FUNCTION R_MY_MIN_I
END
