! { 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