Excuse the poor testcase but i was just trying to get the feel of gomp on non trivial code. It looks like some memory corruption (from the look of the nuked stack), the bigger the better.
[time passes] It seems that if i leave exceptions on, an assert is hit. Here's how it looks with that minimal option set. Backtrace included. /usr/local/gomp/bin/g++ -v -save-temps -DNDEBUG -I./standalone -I/usr/include/lua50/ -I/usr/src/tbp/tolua++-1.0.5/include -I/usr/src/tbp/lib/FreeImage-cvs/Dist/ -fopenmp -c src/raytrace_packet.cpp -o bin/gcc/raytrace_packet.o Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../configure --prefix=/usr/local/gomp --enable-languages=c++ --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-multilib --enable-bootstrap --with-gcc --with-gnu-as --with-gnu-ld Thread model: posix gcc version 4.2.0-gomp-20050608-branch 20060119 (experimental) (merged 20060119) /usr/local/gomp/libexec/gcc/x86_64-unknown-linux-gnu/4.2.0-gomp-20050608-branch/cc1plus -E -quiet -v -I./standalone -I/usr/include/lua50/ -I/usr/src/tbp/tolua++-1.0.5/include -I/usr/src/tbp/lib/FreeImage-cvs/Dist/ -D_GNU_SOURCE -D_REENTRANT -DNDEBUG src/raytrace_packet.cpp -mtune=generic -fopenmp -fpch-preprocess -o raytrace_packet.ii ignoring nonexistent directory "/usr/local/gomp/lib/gcc/x86_64-unknown-linux-gnu/4.2.0-gomp-20050608-branch/../../../../x86_64-unknown-linux-gnu/include" ignoring nonexistent directory "/usr/src/tbp/tolua++-1.0.5/include" #include "..." search starts here: #include <...> search starts here: ./standalone /usr/include/lua50/ /usr/src/tbp/lib/FreeImage-cvs/Dist/ /usr/local/gomp/lib/gcc/x86_64-unknown-linux-gnu/4.2.0-gomp-20050608-branch/../../../../include/c++/4.2.0-gomp-20050608-branch /usr/local/gomp/lib/gcc/x86_64-unknown-linux-gnu/4.2.0-gomp-20050608-branch/../../../../include/c++/4.2.0-gomp-20050608-branch/x86_64-unknown-linux-gnu /usr/local/gomp/lib/gcc/x86_64-unknown-linux-gnu/4.2.0-gomp-20050608-branch/../../../../include/c++/4.2.0-gomp-20050608-branch/backward /usr/local/include /usr/local/gomp/include /usr/local/gomp/lib/gcc/x86_64-unknown-linux-gnu/4.2.0-gomp-20050608-branch/include /usr/include End of search list. /usr/local/gomp/libexec/gcc/x86_64-unknown-linux-gnu/4.2.0-gomp-20050608-branch/cc1plus -fpreprocessed raytrace_packet.ii -quiet -dumpbase raytrace_packet.cpp -mtune=generic -auxbase-strip bin/gcc/raytrace_packet.o -version -fopenmp -o raytrace_packet.sGNU C++ version 4.2.0-gomp-20050608-branch 20060119 (experimental) (merged 20060119) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.2.0-gomp-20050608-branch 20060119 (experimental) (merged 20060119). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 89571ef7c91b12e8fe7e055d9792a102 src/raytrace_packet.cpp: In member function 'void rt::raytracer_t::prender()': src/raytrace_packet.cpp:1411: internal compiler error: in verify_eh_throw_stmt_node, at tree-eh.c:2085 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. (gdb) break tree-eh.c:2085 Breakpoint 1 at 0x54fed4: file ../../gcc/tree-eh.c, line 2085. (gdb) run Starting program: /usr/local/gomp/libexec/gcc/x86_64-unknown-linux-gnu/4.2.0-gomp-20050608-branch/cc1plus -fpreprocessed raytrace_packet.ii -quiet -dumpbase raytrace_packet.cpp -mtune=generic -auxbase-strip bin/gcc/raytrace_packet.o -version -fopenmp -o raytrace_packet.s GNU C++ version 4.2.0-gomp-20050608-branch 20060119 (experimental) (merged 20060119) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.2.0-gomp-20050608-branch 20060119 (experimental) (merged 20060119). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 89571ef7c91b12e8fe7e055d9792a102 Breakpoint 1, verify_eh_throw_stmt_node (slot=0x2aaaacdfa000, data=0x0) at ../../gcc/tree-eh.c:2085 2085 gcc_assert (node->stmt->common.ann == NULL); (gdb) bt full #0 verify_eh_throw_stmt_node (slot=0x2aaaacdfa000, data=0x0) at ../../gcc/tree-eh.c:2085 __FUNCTION__ = "verify_eh_throw_stmt_node" #1 0x00000000009b23f8 in htab_traverse_noresize (htab=<value optimized out>, callback=0x54fed0 <verify_eh_throw_stmt_node>, info=0x0) at ../../libiberty/hashtab.c:729 slot = (void **) 0x2aaaacdfa000 limit = (void **) 0x2aaaacdfafe8 #2 0x0000000000889f1c in execute_one_pass (pass=0xc54f20) at ../../gcc/passes.c:849 __t = <value optimized out> dname = 0x2aaaab6c9100 "°5h«ª*" todo = 0 __FUNCTION__ = "execute_one_pass" #3 0x000000000088a03c in execute_pass_list (pass=0xc54f20) at ../../gcc/passes.c:881 No locals. #4 0x00000000005581ca in tree_rest_of_compilation (fndecl=0x2aaaab6c9100) at ../../gcc/tree-optimize.c:412 e = <value optimized out> node = (struct cgraph_node *) 0x2aaaab26a000 __FUNCTION__ = "tree_rest_of_compilation" #5 0x00000000004d0848 in expand_body (fn=0x2aaaab6c9100) at ../../gcc/cp/semantics.c:3015 saved_function = (tree) 0x0 __FUNCTION__ = "expand_body" #6 0x00000000008d7606 in cgraph_expand_function (node=0x2aaaab26a000) at ../../gcc/cgraphunit.c:1098 decl = (tree) 0x2aaaab6c9100 __FUNCTION__ = "cgraph_expand_function" #7 0x00000000008d9b78 in cgraph_optimize () at ../../gcc/cgraphunit.c:1164 __FUNCTION__ = "cgraph_optimize" #8 0x000000000047de6f in cp_finish_file () at ../../gcc/cp/decl2.c:3115 vars = (tree) 0x268 reconsider = 0 '\0' i = 616 locus = {file = 0xd82cf0 "src/raytrace_packet_aa.cpp", line = 1015} ssdf_count = 1 retries = 1 decl = (tree) 0x2aaaac5ee400 __FUNCTION__ = "cp_finish_file" #9 0x000000000052e16a in c_common_parse_file (set_yydebug=<value optimized out>) at ../../gcc/c-opts.c:1136 i = 0 #10 0x000000000085c5e8 in toplev_main (argc=<value optimized out>, argv=0x0) at ../../gcc/toplev.c:990 No locals. #11 0x00002aaaaabdf4ca in __libc_start_main () from /lib/libc.so.6 No symbol table info available. #12 0x000000000040271a in _start () at ../sysdeps/x86_64/elf/start.S:113 No locals. (gdb) Preprocessed source on the way. -- Summary: [gomp] transient ICE in trunk, c++ Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbptbp at gmail dot com GCC host triplet: x86-64, linux, gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25983