aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr106557.f90
blob: d073f3e71864fd4b5cdf55e64d2bc338cca317d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
! { dg-do run }
! { dg-additional-options "-fdump-tree-original" }
! PR fortran/106557 - nesting intrinsics ibset and transfer gives wrong result

program p
  implicit none
  character(1) :: s

  write(s,'(i1)') ibset (transfer (0, 0), 0)
  if (s /= '1') stop 1
  write(s,'(i1)') ibclr (transfer (1, 0), 0)
  if (s /= '0') stop 2

  ! These shall be fully resolved at compile time:
  if (transfer   (ibset (transfer (0, 0), 0), 0) /= 1) stop 3
  if (transfer   (ibclr (transfer (1, 0), 0), 0) /= 0) stop 4
end

! { dg-final { scan-tree-dump-times "_gfortran_stop_numeric" 2 "original" } }