On Wed, Jan 18, 2012 at 10:16 PM, Patrick Marlier
<patrick.marl...@gmail.com> wrote:

>> IMO, whatever the future decision would be, we shouldn't leave one
>> part of the compiler out-of-sync from the other. Proposed patch fixes
>> _current_ situation, where in the future, it is expected that compiler
>> and library changes in sync...
>
>
> So in order to keep them in sync, this should be also applied to libitm if
> your solution is chosen (At least to avoid confusion).
> If the Intel TM-ABI (no idea what's the status of this specification)
> specifies variadic function and regparm, it should be changed too.
>
> Index: libitm.h
> ===================================================================
> --- libitm.h    (revision 183273)
> +++ libitm.h    (working copy)
> @@ -136,7 +136,7 @@ typedef uint64_t _ITM_transactionId_t;      /* Transact
>
>  extern _ITM_transactionId_t _ITM_getTransactionId(void) ITM_REGPARM;
>
> -extern uint32_t _ITM_beginTransaction(uint32_t, ...) ITM_REGPARM;
> +extern uint32_t _ITM_beginTransaction(uint32_t, ...);
>
>  extern void _ITM_abortTransaction(_ITM_abortReason) ITM_REGPARM
> ITM_NORETURN;

The spec does say that all function should be regparm(2), but I agree
that the above is less confusing. The attribute is ignored, but
perhaps a comment would clear this confusion even more.

Uros.

Reply via email to