@@ -50,7 +50,7 @@ void DataSharingProcessor::processStep2(mlir::Operation *op, bool isLoop) {
5050}
5151
5252void DataSharingProcessor::insertDeallocs () {
53- // TODO Extend delayed privatization to include a `dealloc` region?
53+ // TODO Extend delayed privatization to include a `dealloc` region.
5454 for (const Fortran::semantics::Symbol *sym : privatizedSymbols)
5555 if (Fortran::semantics::IsAllocatable (sym->GetUltimate ())) {
5656 converter.createHostAssociateVarCloneDealloc (*sym);
@@ -388,7 +388,8 @@ void DataSharingProcessor::doPrivatize(const Fortran::semantics::Symbol *sym) {
388388 &allocRegion, /* insertPt=*/ {}, symType, symLoc);
389389
390390 firOpBuilder.setInsertionPointToEnd (allocEntryBlock);
391- symTable->addSymbol (*sym, symExV.clone (allocRegion.getArgument (0 )));
391+ symTable->addSymbol (*sym,
392+ fir::substBase (symExV, allocRegion.getArgument (0 )));
392393 symTable->pushScope ();
393394 cloneSymbol (sym);
394395 firOpBuilder.create <mlir::omp::YieldOp>(
@@ -405,10 +406,10 @@ void DataSharingProcessor::doPrivatize(const Fortran::semantics::Symbol *sym) {
405406 mlir::Block *copyEntryBlock = firOpBuilder.createBlock (
406407 ©Region, /* insertPt=*/ {}, {symType, symType}, {symLoc, symLoc});
407408 firOpBuilder.setInsertionPointToEnd (copyEntryBlock);
408- symTable->addSymbol (*sym, symExV. clone ( copyRegion.getArgument (0 )),
409+ symTable->addSymbol (*sym, fir::substBase (symExV, copyRegion.getArgument (0 )),
409410 /* force=*/ true );
410411 symTable->pushScope ();
411- symTable->addSymbol (*sym, symExV. clone ( copyRegion.getArgument (1 )));
412+ symTable->addSymbol (*sym, fir::substBase (symExV, copyRegion.getArgument (1 )));
412413 auto ip = firOpBuilder.saveInsertionPoint ();
413414 copyFirstPrivateSymbol (sym, &ip);
414415
0 commit comments