diff --git a/flang/lib/Lower/Bridge.cpp b/flang/lib/Lower/Bridge.cpp index b42909eaaacc4..d00346433255e 100644 --- a/flang/lib/Lower/Bridge.cpp +++ b/flang/lib/Lower/Bridge.cpp @@ -2651,9 +2651,6 @@ class FirConverter : public Fortran::lower::AbstractConverter { builder->create(loc, convArg, value); } - builder->create(loc); - builder->setInsertionPointToStart(&b); - Fortran::lower::pft::Evaluation *crtEval = &getEval(); if (crtEval->lowerAsStructured()) { crtEval = &crtEval->getFirstNestedEvaluation(); @@ -2665,6 +2662,7 @@ class FirConverter : public Fortran::lower::AbstractConverter { for (Fortran::lower::pft::Evaluation &e : crtEval->getNestedEvaluations()) genFIR(e); + builder->create(loc); builder->setInsertionPointAfter(op); localSymbols.popScope(); } diff --git a/flang/test/Lower/CUDA/cuda-kernel-loop-directive.cuf b/flang/test/Lower/CUDA/cuda-kernel-loop-directive.cuf index 9b728cd19eb55..d80542f76c92e 100644 --- a/flang/test/Lower/CUDA/cuda-kernel-loop-directive.cuf +++ b/flang/test/Lower/CUDA/cuda-kernel-loop-directive.cuf @@ -24,6 +24,7 @@ subroutine sub1() ! CHECK-NOT: fir.do_loop ! CHECK: %[[ARG0_I32:.*]] = fir.convert %[[ARG0]] : (index) -> i32 ! CHECK: fir.store %[[ARG0_I32]] to %[[IV]]#1 : !fir.ref +! CHECK: hlfir.assign !$cuf kernel do <<< *, * >>>