http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59130
Bug ID: 59130 Summary: Inline(d) or static functions not registered in transactional clone table Product: gcc Version: 4.7.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: machens at tuhh dot de Created attachment 31218 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31218&action=edit Test case to reproduce the bug When a function pointer is used in a transactional section to call a function the STM library (such as libitm) has to lookup the corresponding transactional function 'clone' of that function. The compiler therefore generates mapping tables which associate function pointers of non-transactional functions with their corresponding transactional function clones. With the STAMP benchmark suite I have experienced that the compiler does not generate entries in the lookup table for functions which are declared as static or inline. I have written a small test case to reproduce the bug (see attachment). Compile with: /usr/bin/g++-4.7 -fgnu-tm -Wall -g -O3 -o gnutm-test main.cpp -lpthread -litm