1// Test the FIR types parser diagnostics 2// RUN: fir-opt -split-input-file -verify-diagnostics %s 3 4// expected-error@+1 {{expected non-function type}} 5func.func private @box3() -> !fir.boxproc<> 6 7// ----- 8 9// expected-error@+2 {{expected non-function type}} 10// expected-error@+1 {{failed to parse fir_BoxType parameter 'eleTy' which is to be a `mlir::Type`}} 11func.func private @box1() -> !fir.box<> 12 13// ----- 14 15// expected-error@+1 {{expected integer value}} 16func.func private @box2() -> !fir.boxchar<> 17 18// ----- 19 20// expected-error@+1 {{expected integer value}} 21func.func private @it6() -> !fir.char<> 22 23// ----- 24 25// expected-error@+1 {{expected integer value}} 26func.func private @it6() -> !fir.char<2, > 27 28// ----- 29 30// expected-error@+1 {{expected non-function type}} 31func.func private @mem3() -> !fir.heap<> 32 33// ----- 34 35// expected-error@+1 {{expected integer value}} 36func.func private @it1() -> !fir.int<A> 37 38// ----- 39 40// expected-error@+1 {{expected integer value}} 41func.func private @it1() -> !fir.logical<b> 42 43// ----- 44 45// expected-error@+1 {{expected non-function type}} 46func.func private @mem3() -> !fir.ptr<> 47 48// ----- 49 50// expected-error@+1 {{expected valid keyword}} 51func.func private @mem3() -> !fir.type<> 52 53// ----- 54 55// expected-error@+2 {{expected valid keyword}} 56// expected-error@+1 {{expected LEN parameter list}} 57func.func private @dvd4() -> !fir.type<derived4()> 58 59// ----- 60 61// expected-error@+2 {{expected ':'}} 62// expected-error@+1 {{expected LEN parameter list}} 63func.func private @dvd4() -> !fir.type<derived4(p)> 64 65// ----- 66 67// expected-error@+2 {{expected non-function type}} 68// expected-error@+1 {{expected LEN parameter list}} 69func.func private @dvd4() -> !fir.type<derived4(p:)> 70 71// ----- 72 73// expected-error@+2 {{expected valid keyword}} 74// expected-error@+1 {{expected field type list}} 75func.func private @dvd4() -> !fir.type<derived4(p:i8){}> 76 77// ----- 78 79// expected-error@+2 {{expected ':'}} 80// expected-error@+1 {{expected field type list}} 81func.func private @dvd4() -> !fir.type<derived4(p:i8){f1}> 82 83// ----- 84 85// expected-error@+2 {{expected non-function type}} 86// expected-error@+1 {{expected field type list}} 87func.func private @dvd4() -> !fir.type<derived4(p:i8){f1:f2}> 88 89// ----- 90 91// expected-error@+2 {{expected valid keyword}} 92// expected-error@+1 {{expected field type list}} 93func.func private @dvd4() -> !fir.type<derived4(p:i8){f1:i32,}> 94 95// ----- 96 97// expected-error@+2 {{expected valid keyword}} 98// expected-error@+1 {{expected field type list}} 99func.func private @dvd4() -> !fir.type<derived4(p:i8){,}> 100 101// ----- 102 103// expected-error@+1 {{expected non-function type}} 104func.func private @mem3() -> !fir.ref<> 105 106// ----- 107 108// expected-error@+1 {{expected ':'}} 109func.func private @arr1() -> !fir.array<*> 110 111// ----- 112 113// expected-error@+1 {{expected non-function type}} 114func.func private @arr1() -> !fir.array<*:> 115 116// ----- 117 118// expected-error@+1 {{expected integer value}} 119func.func private @oth1() -> !fir.shape<> 120 121// ----- 122 123// expected-error@+1 {{expected integer value}} 124func.func private @oth1() -> !fir.shapeshift<> 125 126// ----- 127 128// expected-error@+1 {{expected integer value}} 129func.func private @oth1() -> !fir.shift<> 130 131// ----- 132 133// expected-error@+1 {{expected integer value}} 134func.func private @oth1() -> !fir.slice<> 135 136// ----- 137 138// expected-error@+1 {{expected non-function type}} 139func.func private @oth3() -> !fir.tdesc<xx> 140 141// ----- 142 143// expected-error@+1 {{expected integer value}} 144func.func private @oth3() -> !fir.vector<> 145 146// ----- 147 148// expected-error@+1 {{expected ':'}} 149func.func private @oth3() -> !fir.vector<10> 150 151// ----- 152 153// expected-error@+1 {{expected non-function type}} 154func.func private @oth3() -> !fir.vector<10:> 155 156// ----- 157 158// expected-error@+1 {{invalid element type}} 159func.func private @upe() -> !fir.class<!fir.box<i32>> 160 161// ----- 162 163// expected-error@+1 {{invalid element type}} 164func.func private @upe() -> !fir.box<!fir.class<none>> 165