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

Reply via email to