https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78298
Bug ID: 78298 Summary: ICE in lookup_decl_in_outer_ctx, bei omp-low.c:4115 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gerhard.steinmetz.fort...@t-online.de Target Milestone: --- Gives an ICE down to at least 4.8, at -Og, -Os, -O1 or higher. Effectively legal code, but program contains an (here unused) internal subroutine/function with access to some variables. $ cat z1.f90 program p integer :: i, j, n n = 2 !$omp parallel !$omp do do i = 1, n !$omp parallel !$omp do do j = 1, n call sub(i) end do !$omp end parallel end do !$omp end parallel !call unused() contains subroutine sub(x) integer :: x end subroutine unused() i = 0 j = 0 end end $ gfortran-7-20161106 -fopenmp -O2 z1.f90 z1.f90:7:0: !$omp parallel internal compiler error: in lookup_decl_in_outer_ctx, at omp-low.c:4115 0xb1df28 lookup_decl_in_outer_ctx ../../gcc/omp-low.c:4115 0xb407a3 lower_send_shared_vars ../../gcc/omp-low.c:6259 0xb407a3 lower_omp_taskreg ../../gcc/omp-low.c:15681 0xb32306 lower_omp_1 ../../gcc/omp-low.c:17033 0xb32306 lower_omp ../../gcc/omp-low.c:17177 0xb3200c lower_omp_1 ../../gcc/omp-low.c:17025 0xb3200c lower_omp ../../gcc/omp-low.c:17177 0xb4246d lower_omp_for ../../gcc/omp-low.c:15133 0xb324d6 lower_omp_1 ../../gcc/omp-low.c:17040 0xb324d6 lower_omp ../../gcc/omp-low.c:17177 0xb3200c lower_omp_1 ../../gcc/omp-low.c:17025 0xb3200c lower_omp ../../gcc/omp-low.c:17177 0xb403aa lower_omp_taskreg ../../gcc/omp-low.c:15659 0xb32306 lower_omp_1 ../../gcc/omp-low.c:17033 0xb32306 lower_omp ../../gcc/omp-low.c:17177 0xb3166c lower_omp_1 ../../gcc/omp-low.c:17016 0xb3166c lower_omp ../../gcc/omp-low.c:17177 0xb3200c lower_omp_1 ../../gcc/omp-low.c:17025 0xb3200c lower_omp ../../gcc/omp-low.c:17177 0xb391ef execute_lower_omp ../../gcc/omp-low.c:17912