http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59732
Bug ID: 59732 Summary: [4.9 Regression] ICE with -fopenmp: invalid address operand in MEM_REF Product: gcc Version: 4.9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, openmp Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: jakub at gcc dot gnu.org Created attachment 31780 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31780&action=edit Test case, compile with "g++ -fopenmp" Found when compiling Open MPI (trunk version) in the Vampire Trace (vt) component. I marked it as regression as I do not see it with GCC 4.8, however, my GCC 4.8 is compiled without checking. Compiling ompi/contrib/vt/vt/tools/vtfilter/vt_filter_trc.cc - or the attached test case - fails as follows: $ g++ -S -fopenmp test46.ii test46.ii: In member function 'bool FilterTraceC::processEventsAndStatistics()': test46.ii:61:54: error: invalid address operand in MEM_REF const set<uint32_t>& procs = m_streamProcs[stream]; ^ MEM[(struct FilterTraceC *)<<< error >>>]; D.2586 = &MEM[(struct FilterTraceC *)<<< error >>>].m_streamProcs; test46.ii:61:54: internal compiler error: verify_gimple failed 0xbd7da6 verify_gimple_in_cfg(function*) ../../gcc/tree-cfg.c:4854 0xaffcc7 execute_function_todo ../../gcc/passes.c:1854 0xb005b3 execute_todo ../../gcc/passes.c:1884