brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · d4e3f2d Raw
114 lines · plain
1! RUN: %python %S/test_errors.py %s %flang_fc12! Check for semantic errors in coshape() function,3! as defined in section 16.9.55 of the Fortran4! 2018 standard5 6program coshape_tests7  use iso_c_binding, only : c_int32_t, c_int64_t8  implicit none9 10  type t11    real x12  end type13  integer array(1), non_coarray(1), scalar_coarray[*], array_coarray(1)[*], non_constant, scalar_result14  real real_coarray[*]15  complex complex_coarray[*]16  character char_array(1)17  logical non_integer, logical_coarray[*]18  type(t) derived_scalar_coarray[*], derived_array_coarray(1)[*]19  integer, allocatable :: codimensions(:)20 21  !___ standard-conforming statement with no optional arguments present ___22  codimensions = coshape(scalar_coarray)23  codimensions = coshape(array_coarray)24  codimensions = coshape(array_coarray(1))25  codimensions = coshape(real_coarray)26  codimensions = coshape(logical_coarray)27  codimensions = coshape(complex_coarray)28  codimensions = coshape(coarray=scalar_coarray)29 30  !___ standard-conforming statements with optional kind argument present ___31  codimensions = coshape(scalar_coarray, c_int32_t)32  codimensions = coshape(real_coarray, kind=c_int32_t)33  codimensions = coshape(coarray=logical_coarray, kind=c_int32_t)34  codimensions = coshape(kind=c_int32_t, coarray=complex_coarray)35 36  !___ non-conforming statements ___37  ! coarray argument must be a coarray38  !ERROR: 'coarray=' argument must have corank > 0 for intrinsic 'coshape'39  codimensions = coshape(non_coarray)40  !ERROR: 'coarray=' argument must have corank > 0 for intrinsic 'coshape'41  codimensions = coshape(derived_scalar_coarray[1]%x)42  !ERROR: 'coarray=' argument must have corank > 0 for intrinsic 'coshape'43  codimensions = coshape(derived_array_coarray(:)[1]%x)44  !ERROR: 'coarray=' argument must have corank > 0 for intrinsic 'coshape'45  codimensions = coshape(array_coarray(:)[1])46  !ERROR: 'coarray=' argument must have corank > 0 for intrinsic 'coshape'47  codimensions = coshape(scalar_coarray[1])48 49  ! kind argument must be an integer50  !ERROR: Actual argument for 'kind=' has bad type 'LOGICAL(4)'51  codimensions = coshape(scalar_coarray, non_integer)52 53  ! kind argument must be a constant expression54  !ERROR: 'kind=' argument must be a constant scalar integer whose value is a supported kind for the intrinsic result type55  codimensions = coshape(real_coarray, non_constant)56 57  ! kind argument must be an integer scalar58  !ERROR: 'kind=' argument has unacceptable rank 159  codimensions = coshape(complex_coarray, array)60 61  ! missing all arguments62  !ERROR: missing mandatory 'coarray=' argument63  codimensions = coshape()64 65  ! missing mandatory argument66  !ERROR: missing mandatory 'coarray=' argument67  codimensions = coshape(kind=c_int32_t)68 69  ! incorrect typing for mandatory argument70  !ERROR: 'coarray=' argument must have corank > 0 for intrinsic 'coshape'71  codimensions = coshape(3.4)72 73  ! incorrect typing for coarray argument74  !ERROR: 'coarray=' argument must have corank > 0 for intrinsic 'coshape'75  codimensions = coshape(coarray=3.4)76 77  ! too many arguments78  !ERROR: too many actual arguments for intrinsic 'coshape'79  codimensions = coshape(scalar_coarray, c_int32_t, 0)80 81  ! incorrect typing with correct keyword for coarray argument82  !ERROR: 'coarray=' argument must have corank > 0 for intrinsic 'coshape'83  codimensions = coshape(coarray=non_coarray)84 85  ! correct typing with incorrect keyword for coarray argument86  !ERROR: unknown keyword argument to intrinsic 'coshape'87  codimensions = coshape(c=real_coarray)88 89  ! incorrect typing with correct keyword for kind argument90  !ERROR: Actual argument for 'kind=' has bad type 'LOGICAL(4)'91  codimensions = coshape(complex_coarray, kind=non_integer)92 93  ! correct typing with incorrect keyword for kind argument94  !ERROR: unknown keyword argument to intrinsic 'coshape'95  codimensions = coshape(logical_coarray, kinds=c_int32_t)96 97  ! repeated keyword for coarray argument98  !ERROR: repeated keyword argument to intrinsic 'coshape'99  codimensions = coshape(coarray=scalar_coarray, coarray=real_coarray)100 101  ! repeated keyword for kind argument102  !ERROR: repeated keyword argument to intrinsic 'coshape'103  codimensions = coshape(real_coarray, kind=c_int32_t, kind=c_int64_t)104 105  ! result must be a rank 1 array106  !ERROR: No intrinsic or user-defined ASSIGNMENT(=) matches scalar INTEGER(4) and rank 1 array of INTEGER(4)107  scalar_result = coshape(scalar_coarray)108 109  ! result must be an integer array110  !ERROR: No intrinsic or user-defined ASSIGNMENT(=) matches operand types CHARACTER(KIND=1) and INTEGER(4)111  char_array = coshape(real_coarray)112 113end program coshape_tests114