| ! { dg-do run } |
| ! { dg-options "-funsigned" } |
| program memain |
| implicit none |
| unsigned(1) i1,j1 |
| unsigned(2) i2,j2 |
| unsigned(4) i4,j4 |
| unsigned(8) i8,j8 |
| integer ibits,n |
| |
| ibits=bit_size(1u_1) |
| do n=1,ibits |
| i1=huge(i1) |
| call mvbits(1u_1, 0,n,i1,0) |
| j1=uint(-1-2_1**n+2) |
| if(i1.ne.j1) error stop 1 |
| enddo |
| ibits=bit_size(1u_2) |
| do n=1,ibits |
| i2=huge(i2) |
| call mvbits(1u_2, 0,n,i2,0) |
| j2=uint(-1-2_2**n+2) |
| if(i2.ne.j2) error stop 2 |
| enddo |
| ibits=bit_size(1u_4) |
| do n=1,ibits |
| i4=huge(i4) |
| call mvbits(1u_4, 0,n,i4,0) |
| j4=uint(-1-2_4**n+2) |
| if(i4.ne.j4) error stop 3 |
| enddo |
| ibits=bit_size(1_8) |
| do n=1,ibits |
| i8=huge(i8) |
| call mvbits(1u_8, 0,n,i8,0) |
| j8=uint(-1-2_8**n+2,8) |
| if(i8.ne.j8) error stop 4 |
| enddo |
| |
| end program memain |