https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63922
Bug ID: 63922 Summary: Compiler error with OpenMP, default(none) and an integer parameter array Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: john.donners at surfsara dot nl the following test code produces a compiler error: $ cat test.f90 program omp implicit none integer i,region integer,parameter::l=4 integer,parameter::a(l)=(/1,2,3,4/) !$OMP PARALLEL & !$OMP default(none) & !$OMP shared(region) & !$OMP & private(i) !$OMP DO do region=1,l if(a(region).eq.1) then i=1 endif enddo !$OMP END DO !$OMP END PARALLEL end program omp $ gfortran -v -fopenmp test.f90 ... GNU Fortran (Ubuntu 4.8.2-19ubuntu1) version 4.8.2 (x86_64-linux-gnu) compiled by GNU C version 4.8.2, GMP version 5.1.3, MPFR version 3.1.2-p3, MPC version 1.0.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 test.f90: In function ‘omp’: test.f90:15:0: error: ‘a’ not specified in enclosing parallel if(a(region).eq.1) then ^ test.f90:12:0: error: enclosing parallel !$OMP & private(i) ^ However, since the array a is a parameter, it shouldn't need to be specified in the enclosing parallel. The same problem occurs in version 5.0.0 20140917 (experimental).