diff --git a/flang/lib/Optimizer/Transforms/OMPFunctionFiltering.cpp b/flang/lib/Optimizer/Transforms/OMPFunctionFiltering.cpp index 466bf53e8dbd6..959099d039a5e 100644 --- a/flang/lib/Optimizer/Transforms/OMPFunctionFiltering.cpp +++ b/flang/lib/Optimizer/Transforms/OMPFunctionFiltering.cpp @@ -79,12 +79,15 @@ class OMPFunctionFilteringPass // Remove the callOp callOp->erase(); } - if (!hasTargetRegion) + if (!hasTargetRegion) { funcOp.erase(); - else if (declareTargetOp) + return WalkResult::skip(); + } + if (declareTargetOp) declareTargetOp.setDeclareTarget(declareType, omp::DeclareTargetCaptureClause::to); } + return WalkResult::advance(); }); } };