This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/48074] New: [trans-mem] regular function used instead of clone in a transaction
- From: "patrick.marlier at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 11 Mar 2011 15:34:55 +0000
- Subject: [Bug c++/48074] New: [trans-mem] regular function used instead of clone in a transaction
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: patrick.marlier@gmail.com
CC: rth@gcc.gnu.org, aldyh@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.