1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
! { dg-do run }
! { dg-options "-funsigned" }
program memain
use iso_fortran_env, only : uint8, uint32
implicit none
call test1
call test2
contains
subroutine test1
unsigned(uint32) :: u1, u2
unsigned(uint8), dimension(3,3) :: v1, v2
u1 = umaskr(3)
if (u1 /= 7u) error stop 1
u2 = umaskl(2)
if (u2 /= 3221225472u) error stop 2
v1 = umaskr(5,uint8)
if (any(v1 /= 31u)) error stop 3
v2 = umaskl(5,uint8)
if (any(v2 /= 248u_uint8)) error stop 4
end subroutine test1
subroutine test2
unsigned(uint32), parameter :: u1 = umaskr(3), u2=umaskl(2)
unsigned(uint8), dimension(3,3) :: v1 = umaskr(5,uint8), v2 = umaskl(5,uint8)
if (u1 /= 7u) error stop 11
if (u2 /= 3221225472u) error stop 12
if (any(v1 /= 31u)) error stop 13
if (any(v2 /= 248u_uint8)) error stop 14
end subroutine test2
end program memain
|