1! RUN: %S/test_errors.sh %s %t %flang_fc1 2! REQUIRES: shell 3! Test constant folding of type parameter values both a base value and a 4! parameter name are supplied. 5! 6! Type parameters are described in 7.5.3 and constant expressions are described 7! in 10.1.12. 10.1.12, paragraph 4 defines whether a specification inquiry is 8! a constant expression. Section 10.1.11, paragraph 3, item (2) states that a 9! type parameter inquiry is a specification inquiry. 10 11module m1 12 type dtype(goodDefaultKind, badDefaultKind) 13 integer, kind :: goodDefaultKind = 4 14 integer, kind :: badDefaultKind = 343 15 ! next field OK only if instantiated with a good value of goodDefaultKind 16 !ERROR: KIND parameter value (99) of intrinsic type REAL did not resolve to a supported value 17 real(goodDefaultKind) :: goodDefaultField 18 ! next field OK only if instantiated with a good value of goodDefaultKind 19 !ERROR: KIND parameter value (343) of intrinsic type REAL did not resolve to a supported value 20 !ERROR: KIND parameter value (99) of intrinsic type REAL did not resolve to a supported value 21 real(badDefaultKind) :: badDefaultField 22 end type dtype 23 type(dtype) :: v1 24 type(dtype(4, 4)) :: v2 25 type(dtype(99, 4)) :: v3 26 type(dtype(4, 99)) :: v4 27end module m1 28 29module m2 30 type baseType(baseParam) 31 integer, kind :: baseParam = 4 32 end type baseType 33 type dtype(dtypeParam) 34 integer, kind :: dtypeParam = 4 35 type(baseType(dtypeParam)) :: baseField 36 !ERROR: KIND parameter value (343) of intrinsic type REAL did not resolve to a supported value 37 real(baseField%baseParam) :: realField 38 end type dtype 39 40 type(dtype) :: v1 41 type(dtype(8)) :: v2 42 type(dtype(343)) :: v3 43end module m2 44 45module m3 46 type dtype(goodDefaultLen, badDefaultLen) 47 integer, len :: goodDefaultLen = 4 48 integer, len :: badDefaultLen = 343 49 end type dtype 50 type(dtype) :: v1 51 type(dtype(4, 4)) :: v2 52 type(dtype(99, 4)) :: v3 53 type(dtype(4, 99)) :: v4 54 real(v1%goodDefaultLen), pointer :: pGood1 55 !ERROR: REAL(KIND=343) is not a supported type 56 real(v1%badDefaultLen), pointer :: pBad1 57 real(v2%goodDefaultLen), pointer :: pGood2 58 real(v2%badDefaultLen), pointer :: pBad2 59 !ERROR: REAL(KIND=99) is not a supported type 60 real(v3%goodDefaultLen), pointer :: pGood3 61 real(v3%badDefaultLen), pointer :: pBad3 62 real(v4%goodDefaultLen), pointer :: pGood4 63 !ERROR: REAL(KIND=99) is not a supported type 64 real(v4%badDefaultLen), pointer :: pBad4 65end module m3 66