Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gfortran.dg/chkbits.f90 @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 ! { dg-do run } | |
2 ! NOT() was not return the two's complement value as reported by | |
3 ! PR fortran/25458. In checking other bit manipulation intrinsics, | |
4 ! IBSET was found to be in error. | |
5 program chkbits | |
6 | |
7 implicit none | |
8 | |
9 integer(kind=1) i1 | |
10 integer(kind=2) i2 | |
11 integer(kind=4) i4 | |
12 integer(kind=8) i8 | |
13 | |
14 i1 = ibset(huge(0_1), bit_size(i1)-1) | |
15 i2 = ibset(huge(0_2), bit_size(i2)-1) | |
16 i4 = ibset(huge(0_4), bit_size(i4)-1) | |
17 i8 = ibset(huge(0_8), bit_size(i8)-1) | |
18 if (i1 /= -1 .or. i2 /= -1 .or. i4 /= -1 .or. i8 /= -1) call abort | |
19 | |
20 i1 = ibclr(-1_1, bit_size(i1)-1) | |
21 i2 = ibclr(-1_2, bit_size(i2)-1) | |
22 i4 = ibclr(-1_4, bit_size(i4)-1) | |
23 i8 = ibclr(-1_8, bit_size(i8)-1) | |
24 if (i1 /= huge(0_1) .or. i2 /= huge(0_2)) call abort | |
25 if (i4 /= huge(0_4) .or. i8 /= huge(0_8)) call abort | |
26 | |
27 i1 = not(0_1) | |
28 i2 = not(0_2) | |
29 i4 = not(0_4) | |
30 i8 = not(0_8) | |
31 if (i1 /= -1 .or. i2 /= -1 .or. i4 /= -1 .or. i8 /= -1) call abort | |
32 | |
33 end program chkbits |