xref: /llvm-project/flang/test/Semantics/real10-x86-02.f90 (revision c4a77bfb62b7caeb8a4d73a09df7e18e438b890f)
1! RUN: %python %S/test_modfile.py %s %flang_fc1 -triple x86_64-unknown-linux-gnu
2! Intrinsics SELECTED_INT_KIND, SELECTED_REAL_KIND, PRECISION, RANGE,
3! RADIX, DIGITS
4! REQUIRES: x86-registered-target
5
6module m1
7  ! REAL(KIND=10) handles 16 <= P < 19 (if available; ifort is KIND=16)
8  integer, parameter :: realprec = precision(0._10)
9  logical, parameter :: rpreccheck = 18 == realprec
10  integer, parameter :: realpvals(*) = [16, 18]
11  integer, parameter :: realpkinds(*) = &
12    [(selected_real_kind(realpvals(j),0),j=1,size(realpvals))]
13  logical, parameter :: realpcheck = all([10, 10] == realpkinds)
14  ! REAL(KIND=10) handles 308 <= R < 4932 (if available; ifort is KIND=16)
15  integer, parameter :: realrange = range(0._10)
16  logical, parameter :: rrangecheck = 4931 == realrange
17  integer, parameter :: realrvals(*) = [308, 4931]
18  integer, parameter :: realrkinds(*) = &
19    [(selected_real_kind(0,realrvals(j)),j=1,size(realrvals))]
20  logical, parameter :: realrcheck = all([10, 10] == realrkinds)
21  logical, parameter :: radixcheck = radix(0._10) == 2
22
23  integer, parameter :: realdigits = digits(0._10)
24  logical, parameter :: realdigitscheck = 64 == realdigits
25end module m1
26!Expect: m1.mod
27!module m1
28!integer(4),parameter::realprec=18_4
29!intrinsic::precision
30!logical(4),parameter::rpreccheck=.true._4
31!integer(4),parameter::realpvals(1_8:*)=[INTEGER(4)::16_4,18_4]
32!integer(4),parameter::realpkinds(1_8:*)=[INTEGER(4)::10_4,10_4]
33!intrinsic::selected_real_kind
34!intrinsic::size
35!logical(4),parameter::realpcheck=.true._4
36!intrinsic::all
37!integer(4),parameter::realrange=4931_4
38!intrinsic::range
39!logical(4),parameter::rrangecheck=.true._4
40!integer(4),parameter::realrvals(1_8:*)=[INTEGER(4)::308_4,4931_4]
41!integer(4),parameter::realrkinds(1_8:*)=[INTEGER(4)::10_4,10_4]
42!logical(4),parameter::realrcheck=.true._4
43!logical(4),parameter::radixcheck=.true._4
44!intrinsic::radix
45!integer(4),parameter::realdigits=64_4
46!intrinsic::digits
47!logical(4),parameter::realdigitscheck=.true._4
48!end
49