File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed
lib/Conversion/MemRefToEmitC
test/Conversion/MemRefToEmitC Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -167,7 +167,9 @@ void mlir::populateMemRefToEmitCTypeConversion(TypeConverter &typeConverter) {
167167 typeConverter.addConversion (
168168 [&](MemRefType memRefType) -> std::optional<Type> {
169169 if (!memRefType.hasStaticShape () ||
170- !memRefType.getLayout ().isIdentity () || memRefType.getRank () == 0 ) {
170+ !memRefType.getLayout ().isIdentity () || memRefType.getRank () == 0 ||
171+ llvm::any_of (memRefType.getShape (),
172+ [](int64_t dim) { return dim == 0 ; })) {
171173 return {};
172174 }
173175 Type convertedElementType =
Original file line number Diff line number Diff line change @@ -41,6 +41,22 @@ func.func @zero_rank() {
4141
4242// -----
4343
44+ func.func @zero_dim_rank_1 () {
45+ // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
46+ %0 = memref.alloca () : memref <0 xf32 >
47+ return
48+ }
49+
50+ // -----
51+
52+ func.func @zero_dim_rank_3 () {
53+ // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
54+ %0 = memref.alloca () : memref <2 x0 x4 xf32 >
55+ return
56+ }
57+
58+ // -----
59+
4460// expected-error@+1 {{failed to legalize operation 'memref.global'}}
4561memref.global " nested" constant @nested_global : memref <3 x7 xf32 >
4662
You can’t perform that action at this time.
0 commit comments