xref: /llvm-project/flang/test/Semantics/numeric_storage_size.f90 (revision e1ad2735c3e7b0af94159f585458c7383255f03e)
1! RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s --check-prefix=CHECK
2! RUN: %flang_fc1 -fdebug-unparse -fdefault-integer-8 %s 2>&1 | FileCheck %s --check-prefix=CHECK-I8
3! RUN: %flang_fc1 -fdebug-unparse %s -fdefault-real-8 2>&1 | FileCheck %s --check-prefix=CHECK-R8
4! RUN: %flang_fc1 -fdebug-unparse %s -fdefault-integer-8 -fdefault-real-8  2>&1 | FileCheck %s --check-prefix=CHECK-I8-R8
5
6use iso_fortran_env
7
8!CHECK-NOT: warning
9!CHECK: nss = 32_4
10!CHECK-I8: warning: NUMERIC_STORAGE_SIZE from ISO_FORTRAN_ENV is not well-defined when default INTEGER and REAL are not consistent due to compiler options
11!CHECK-I8: nss = 32_4
12!CHECK-R8: warning: NUMERIC_STORAGE_SIZE from ISO_FORTRAN_ENV is not well-defined when default INTEGER and REAL are not consistent due to compiler options
13!CHECK-R8: nss = 32_4
14!CHECK-I8-R8: nss = 64_4
15integer, parameter :: nss = numeric_storage_size
16
17!CHECK: iss = 32_4
18!CHECK-I8: iss = 64_8
19!CHECK-R8: iss = 32_4
20!CHECK-I8-R8: iss = 64_8
21integer, parameter :: iss = storage_size(1)
22
23!CHECK: rss = 32_4
24!CHECK-I8: rss = 32_8
25!CHECK-R8: rss = 64_4
26!CHECK-I8-R8: rss = 64_8
27integer, parameter :: rss = storage_size(1.)
28
29!CHECK: zss = 64_4
30!CHECK-I8: zss = 64_8
31!CHECK-R8: zss = 128_4
32!CHECK-I8-R8: zss = 128_8
33integer, parameter :: zss = storage_size((1.,0.))
34
35!CHECK: lss = 32_4
36!CHECK-I8: lss = 64_8
37!CHECK-R8: lss = 32_4
38!CHECK-I8-R8: lss = 64_8
39integer, parameter :: lss = storage_size(.true.)
40end
41