http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47886
Summary: ICE: OpenMP !$omp task if(omp_get_num_threads() > 0) Product: gcc Version: 4.5.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: lo...@cray.com Test code: ! derived from OpenMP test OMP3f/F03_2_7_1d.F90 program F03_2_7_1d use omp_lib implicit none integer, parameter :: NT = 4 integer :: sum = 0 call omp_set_num_threads(NT); !$omp parallel !$omp task if(omp_get_num_threads() > 0) !$omp atomic sum = sum + 1 !$omp end task !$omp end parallel if (sum /= NT) then print *, "FAIL - sum == ", sum, " (expected ", NT, ")" stop 1; end if end program F03_2_7_1d > gfortran -fopenmp test.f90 test.f90: In function 'f03_2_7_1d': test.f90:11:0: internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.c:1368 Please submit a full bug report, > gfortran -v Using built-in specs. COLLECT_GCC=/opt/gcc/4.5.2/bin/../snos/bin/gfortran COLLECT_LTO_WRAPPER=/opt/gcc/4.5.2/snos/libexec/gcc/x86_64-suse-linux/4.5.2/lto-wrapper Target: x86_64-suse-linux Same code fine with ifort: > ifort -openmp test.f90 > ./a.out >