This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libitm/78202] New: declarations of builtins in libitm don't match


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78202

            Bug ID: 78202
           Summary: declarations of builtins in libitm don't match
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libitm
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bernd.edlinger at hotmail dot de
  Target Milestone: ---

C++ does currently not give a warning about it, but this is about to change
soon.

The following functions are declared in libitm.h:

void _ITM_L##T (const _ITM_TYPE##T *) ;
void _ITM_LB (const void *, size_t) ;

But the builtin functions have a different signature

void _ITM_L##T (const _ITM_TYPE##T *) ATTR_TM_TMPURE_NOTHROW_LIST;
void _ITM_LB (volatile void*, size_t) ATTR_TM_TMPURE_NOTHROW_LIST;

I doubt that the builtin attributes are used due to the type conflict,
some of the attributes are impossible to write down in the source code,
like attribute((*tm regparm)) so there is probably no work-around.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]