@@ -3950,8 +3950,9 @@ class ArrayExprLowering {
3950
3950
mlir::Value oldInnerArg = modifyOp.getSequence ();
3951
3951
std::size_t offset = explicitSpace->argPosition (oldInnerArg);
3952
3952
explicitSpace->setInnerArg (offset, fir::getBase (lexv));
3953
- fir::ExtendedValue exv = arrayModifyToExv (
3954
- builder, loc, *explicitSpace->getLhsLoad (0 ), modifyOp.getResult (0 ));
3953
+ fir::ExtendedValue exv =
3954
+ arrayModifyToExv (builder, loc, explicitSpace->getLhsLoad (0 ).value (),
3955
+ modifyOp.getResult (0 ));
3955
3956
genScalarUserDefinedAssignmentCall (builder, loc, userAssignment, exv,
3956
3957
elementalExv);
3957
3958
} else {
@@ -4101,7 +4102,7 @@ class ArrayExprLowering {
4101
4102
mlir::Value origVal) {
4102
4103
mlir::Value val = builder.createConvert (loc, eleTy, origVal);
4103
4104
if (isBoundsSpec ()) {
4104
- auto lbs = * lbounds;
4105
+ auto lbs = lbounds. value () ;
4105
4106
if (lbs.size () > 0 ) {
4106
4107
// Rebox the value with user-specified shift.
4107
4108
auto shiftTy = fir::ShiftType::get (eleTy.getContext (), lbs.size ());
@@ -6368,7 +6369,7 @@ class ArrayExprLowering {
6368
6369
charLen = builder.createTemporary (loc, builder.getI64Type ());
6369
6370
mlir::Value castLen =
6370
6371
builder.createConvert (loc, builder.getI64Type (), fir::getLen (exv));
6371
- builder.create <fir::StoreOp>(loc, castLen, * charLen);
6372
+ builder.create <fir::StoreOp>(loc, castLen, charLen. value () );
6372
6373
}
6373
6374
}
6374
6375
stmtCtx.finalize (/* popScope=*/ true );
@@ -6382,7 +6383,7 @@ class ArrayExprLowering {
6382
6383
6383
6384
// Convert to extended value.
6384
6385
if (fir::isa_char (seqTy.getEleTy ())) {
6385
- auto len = builder.create <fir::LoadOp>(loc, * charLen);
6386
+ auto len = builder.create <fir::LoadOp>(loc, charLen. value () );
6386
6387
return {fir::CharArrayBoxValue{mem, len, extents}, /* needCopy=*/ false };
6387
6388
}
6388
6389
return {fir::ArrayBoxValue{mem, extents}, /* needCopy=*/ false };
@@ -6450,7 +6451,7 @@ class ArrayExprLowering {
6450
6451
charLen = builder.createTemporary (loc, builder.getI64Type ());
6451
6452
mlir::Value castLen =
6452
6453
builder.createConvert (loc, builder.getI64Type (), fir::getLen (exv));
6453
- builder.create <fir::StoreOp>(loc, castLen, * charLen);
6454
+ builder.create <fir::StoreOp>(loc, castLen, charLen. value () );
6454
6455
}
6455
6456
}
6456
6457
mem = builder.createConvert (loc, fir::HeapType::get (resTy), mem);
0 commit comments