@@ -50,7 +50,7 @@ void DataSharingProcessor::processStep2(mlir::Operation *op, bool isLoop) {
50
50
}
51
51
52
52
void DataSharingProcessor::insertDeallocs () {
53
- // TODO Extend delayed privatization to include a `dealloc` region?
53
+ // TODO Extend delayed privatization to include a `dealloc` region.
54
54
for (const Fortran::semantics::Symbol *sym : privatizedSymbols)
55
55
if (Fortran::semantics::IsAllocatable (sym->GetUltimate ())) {
56
56
converter.createHostAssociateVarCloneDealloc (*sym);
@@ -388,7 +388,8 @@ void DataSharingProcessor::doPrivatize(const Fortran::semantics::Symbol *sym) {
388
388
&allocRegion, /* insertPt=*/ {}, symType, symLoc);
389
389
390
390
firOpBuilder.setInsertionPointToEnd (allocEntryBlock);
391
- symTable->addSymbol (*sym, symExV.clone (allocRegion.getArgument (0 )));
391
+ symTable->addSymbol (*sym,
392
+ fir::substBase (symExV, allocRegion.getArgument (0 )));
392
393
symTable->pushScope ();
393
394
cloneSymbol (sym);
394
395
firOpBuilder.create <mlir::omp::YieldOp>(
@@ -405,10 +406,10 @@ void DataSharingProcessor::doPrivatize(const Fortran::semantics::Symbol *sym) {
405
406
mlir::Block *copyEntryBlock = firOpBuilder.createBlock (
406
407
©Region, /* insertPt=*/ {}, {symType, symType}, {symLoc, symLoc});
407
408
firOpBuilder.setInsertionPointToEnd (copyEntryBlock);
408
- symTable->addSymbol (*sym, symExV. clone ( copyRegion.getArgument (0 )),
409
+ symTable->addSymbol (*sym, fir::substBase (symExV, copyRegion.getArgument (0 )),
409
410
/* force=*/ true );
410
411
symTable->pushScope ();
411
- symTable->addSymbol (*sym, symExV. clone ( copyRegion.getArgument (1 )));
412
+ symTable->addSymbol (*sym, fir::substBase (symExV, copyRegion.getArgument (1 )));
412
413
auto ip = firOpBuilder.saveInsertionPoint ();
413
414
copyFirstPrivateSymbol (sym, &ip);
414
415
0 commit comments