Consider the following Fortran snippet:
subroutine sub
integer :: nRead
!$omp critical
if (nRead<3) return
!$omp end critical
end subroutine
Compiling this with "gfortran -fopenmp" results in a segfault (with 4.4.1 and
current trunk on x86_64-unknown-linux-gnu). The backtrace is:
#0 0x0000000000a0abcc in main_block_label (label=0x7ffff7f64180) at
/home/jweil/gcc45/trunk/gcc/tree-cfg.c:1064
#1 0x0000000000a0b157 in cleanup_dead_labels () at
/home/jweil/gcc45/trunk/gcc/tree-cfg.c:1192
#2 0x0000000000a08f27 in build_gimple_cfg (seq=0x7ffff7f54600) at
/home/jweil/gcc45/trunk/gcc/tree-cfg.c:201
#3 0x0000000000a08fd1 in execute_build_cfg () at
/home/jweil/gcc45/trunk/gcc/tree-cfg.c:238
#4 0x0000000000907d9b in execute_one_pass (pass=0x16c4dc0) at
/home/jweil/gcc45/trunk/gcc/passes.c:1556
#5 0x0000000000907f8f in execute_pass_list (pass=0x16c4dc0) at
/home/jweil/gcc45/trunk/gcc/passes.c:1611
#6 0x0000000000a7fe21 in tree_lowering_passes (fn=0x7ffff7f63f00) at
/home/jweil/gcc45/trunk/gcc/tree-optimize.c:364
#7 0x0000000000cc9f23 in cgraph_lower_function (node=0x7ffff7e7d4e0) at
/home/jweil/gcc45/trunk/gcc/cgraphunit.c:499
#8 0x0000000000ccadf3 in cgraph_analyze_function (node=0x7ffff7e7d4e0) at
/home/jweil/gcc45/trunk/gcc/cgraphunit.c:847
#9 0x0000000000ccb347 in cgraph_analyze_functions () at
/home/jweil/gcc45/trunk/gcc/cgraphunit.c:979
#10 0x0000000000ccb7b8 in cgraph_finalize_compilation_unit () at
/home/jweil/gcc45/trunk/gcc/cgraphunit.c:1084
#11 0x00000000008aa088 in write_global_declarations () at
/home/jweil/gcc45/trunk/gcc/langhooks.c:309
#12 0x00000000009fe59d in compile_file () at
/home/jweil/gcc45/trunk/gcc/toplev.c:1061
#13 0x0000000000a00775 in do_compile () at
/home/jweil/gcc45/trunk/gcc/toplev.c:2387
#14 0x0000000000a0084b in toplev_main (argc=3, argv=0x7fffffffe2c8) at
/home/jweil/gcc45/trunk/gcc/toplev.c:2429
#15 0x00000000005dbcac in main (argc=3, argv=0x7fffffffe2c8) at
/home/jweil/gcc45/trunk/gcc/main.c:35
--
Summary: ICE with -fopenmp
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42484