! { dg-do run } ! { dg-options "-std=legacy" } ! ! Test logical .XOR. operator. ! implicit none logical :: in1, in2, neqv_out, lxor_out, truth_table(2) integer :: i, j, ixor_out, ieor_out truth_table(1) = .true. truth_table(2) = .false. do i = 1,2 do j = 1,2 in1 = truth_table(j) in2 = truth_table(i) ! make sure logical xor works neqv_out = in1 .neqv. in2 lxor_out = in1 .xor. in2 if ( neqv_out .neqv. lxor_out ) then print *, "(",in1,in2,") .neqv.: ",neqv_out," .xor.: ",lxor_out STOP 1 endif ! make sure we didn't break xor() intrinsic ixor_out = xor(i*7, j*5) ieor_out = ieor(i*7, j*5) if ( ixor_out .ne. ieor_out ) then print *, "(",in1,in2,") ieor(): ",ieor_out," xor(): ",ixor_out STOP 2 endif enddo enddo end