// RUN: mlir-translate -split-input-file -declare-variables-at-top -mlir-to-cpp -verify-diagnostics %s
// expected-error@+1 {{'func.func' op cannot emit block argument #0 with type '!emitc.array<4xi8>'}}
func.func @array_as_block_argument(!emitc.array<4xi8>) {
^bb0(%arg0 : !emitc.array<4xi8>):
cf.br ^bb1(%arg0 : !emitc.array<4xi8>)
^bb1(%a : !emitc.array<4xi8>):
return
}
// -----
// expected-error@+1 {{'emitc.func' op cannot emit block argument #0 with type '!emitc.lvalue<i32>'}}
emitc.func @lvalue_as_block_argument() {
^bb0:
%0 = "emitc.variable"() <{value = #emitc.opaque<"">}> : () -> !emitc.lvalue<i32>
cf.br ^bb1(%0 : !emitc.lvalue<i32>)
^bb1(%a : !emitc.lvalue<i32>):
emitc.return
}