File tree Expand file tree Collapse file tree 2 files changed +28
-3
lines changed Expand file tree Collapse file tree 2 files changed +28
-3
lines changed Original file line number Diff line number Diff line change @@ -1847,8 +1847,12 @@ class FirConverter : public Fortran::lower::AbstractConverter {
1847
1847
Fortran::lower::pft::Evaluation &eval = getEval ();
1848
1848
Fortran::lower::StatementContext stmtCtx;
1849
1849
pushActiveConstruct (eval, stmtCtx);
1850
- for (Fortran::lower::pft::Evaluation &e : getEval ().getNestedEvaluations ())
1851
- genFIR (e);
1850
+ for (Fortran::lower::pft::Evaluation &e : eval.getNestedEvaluations ()) {
1851
+ if (e.getIf <Fortran::parser::EndSelectStmt>())
1852
+ maybeStartBlock (e.block );
1853
+ else
1854
+ genFIR (e);
1855
+ }
1852
1856
popActiveConstruct ();
1853
1857
}
1854
1858
@@ -2708,7 +2712,7 @@ class FirConverter : public Fortran::lower::AbstractConverter {
2708
2712
builder->restoreInsertionPoint (crtInsPt);
2709
2713
++typeGuardIdx;
2710
2714
} else if (eval.getIf <Fortran::parser::EndSelectStmt>()) {
2711
- genFIR (eval);
2715
+ maybeStartBlock (eval. block );
2712
2716
if (hasLocalScope)
2713
2717
localSymbols.popScope ();
2714
2718
} else {
Original file line number Diff line number Diff line change @@ -413,6 +413,27 @@ subroutine sforall(num)
413
413
print * , array(1 )
414
414
end subroutine sforall
415
415
416
+ ! CHECK-LABEL: func @_QPsnested
417
+ subroutine snested (str )
418
+ character (* ), optional :: str
419
+ integer :: num
420
+
421
+ if (present (str)) then
422
+ select case (trim (str))
423
+ case (' a' )
424
+ num = 10
425
+ case default
426
+ num = 20
427
+ end select
428
+ ! CHECK: ^bb5: // 2 preds: ^bb3, ^bb4
429
+ ! CHECK: fir.freemem %{{[0-9]+}} : !fir.heap<!fir.char<1,?>>
430
+ ! CHECK: cf.br ^bb7
431
+ else
432
+ num = 30
433
+ end if
434
+ ! CHECK: ^bb7: // 2 preds: ^bb5, ^bb6
435
+ end subroutine snested
436
+
416
437
! CHECK-LABEL: main
417
438
program p
418
439
integer sinteger, v(10 )
You can’t perform that action at this time.
0 commit comments