| ! { dg-do run } |
| ! { dg-options "-funsigned" } |
| ! Test bit functions, huge and digits. |
| unsigned :: u1, u2, u3 |
| u1 = 32u |
| u2 = 64u |
| if (ior (u1,u2) /= u1 + u2) error stop 1 |
| if (ior (32u,64u) /= 32u + 64u) error stop 2 |
| u1 = 234u |
| u2 = 221u |
| if (iand (u1,u2) /= 200u) error stop 3 |
| if (iand (234u,221u) /= 200u) error stop 4 |
| if (ieor (u1,u2) /= 55u) error stop 5 |
| if (ieor (234u,221u) /= 55u) error stop 6 |
| u1 = huge(u1) |
| if (u1 /= 4294967295u) error stop 7 |
| u2 = not(0u) |
| u3 = u2 - u1 |
| if (u3 /= 0u) error stop 8 |
| u2 = not(255u); |
| if (u2 /= huge(u2) - 255u) error stop 9 |
| u1 = 255u |
| u2 = not(u1) |
| if (u2 /= huge(u2) - 255u) error stop 9 |
| if (digits(u1) /= 32) error stop 10 |
| end |