http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47606
Summary: [trans-mem] internal compiler error in expand_block_tm with O2 Product: gcc Version: trans-mem Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: patrick.marl...@gmail.com CC: r...@gcc.gnu.org, al...@gcc.gnu.org Created attachment 23243 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23243 old testcase flavoured I wanted to reopen this old bug but I can't since I am not the creator: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46269 Anyway, here a test case that raised again this with O2: $ g++ -fgnu-tm -S -O2 -Wfatal-errors ICE_expand_block_tm.i ICE_expand_block_tm.i: In member function ‘void sp_counted_impl_p<X>::dispose() [with X = GradientInfo]’: ICE_expand_block_tm.i:31:15: internal compiler error: in expand_block_tm, at trans-mem.c:2323 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. It seems that even if the function atomic_exchange_and_add is declared transaction_pure, gcc complains about the GIMPLE_ASM statement in expand_block_tm. Patrick Marlier.