File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -1264,9 +1264,16 @@ class ExprLowering {
1264
1264
return std::visit ([&](const auto &x) { return genval (x); }, des.u );
1265
1265
}
1266
1266
1267
+ mlir::Type genType (const Fortran::evaluate::DynamicType &dt) {
1268
+ if (dt.category () != Fortran::common::TypeCategory::Derived)
1269
+ return converter.genType (dt.category (), dt.kind ());
1270
+ llvm::report_fatal_error (" derived types not implemented" );
1271
+ }
1272
+
1267
1273
template <typename A>
1268
1274
fir::ExtendedValue gen (const Fortran::evaluate::FunctionRef<A> &func) {
1269
- auto resTy = converter.genType (*func.proc ().GetSymbol ());
1275
+ assert (func.GetType ().has_value () && " function has no type" );
1276
+ auto resTy = genType (*func.GetType ());
1270
1277
auto retVal = genProcedureRef (func, llvm::ArrayRef<mlir::Type>{resTy});
1271
1278
auto mem = builder.create <fir::AllocaOp>(getLoc (), resTy);
1272
1279
builder.create <fir::StoreOp>(getLoc (), fir::getBase (retVal), mem);
You can’t perform that action at this time.
0 commit comments