http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48074
Summary: [trans-mem] regular function used instead of clone in a transaction 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 23631 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23631 not so big testcase. In a relaxed transaction, some functions (stl? template?) in an transaction doesn't call the clone version (not in an irrevocable mode: neither attribute doesGoIrrevocable nor ITM_changeTransactionMode). You can verify this in the function stepDestroyBuildings (_ZL20stepDestroyBuildingsi) in Team.cpp (from glob2, kind of testcase attached), the function _ZNSt4listIP8BuildingSaIS1_EE5beginEv is called directly (not the clone, no changeTransactionMode) even if in a transaction. I had a quick look and the clone function exists but the call seems not be replaced. It seems to happen when one transaction is followed by another one (at least related). Patrick Marlier.