With i386, the regparm(2) is not taken into account when there is a variadic function. All parameters are in the stack.
Since this variable argument is never used removing it is not a problem.

This solves libitm testcases memset-1.c/memcpy-1.c on i686 (part of PR51655/51124).

Before:
FAIL: libitm.c/memcpy-1.c execution test
FAIL: libitm.c/memset-1.c execution test

                === libitm Summary ===

# of expected passes            21
# of unexpected failures        2
# of expected failures          5
# of unresolved testcases       1


After:
                === libitm Summary ===

# of expected passes            23
# of expected failures          5
# of unresolved testcases       1

Tested on i686. If ok, please commit. Thanks.

Patrick Marlier.


2011-12-28  Patrick Marlier  <patrick.marl...@gmail.com>

        PR testsuite/51655
        * libitm.h (_ITM_beginTransaction): Remove unused argument.



Index: libitm.h
===================================================================
--- libitm.h    (revision 182549)
+++ 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) ITM_REGPARM;

extern void _ITM_abortTransaction(_ITM_abortReason) ITM_REGPARM ITM_NORETURN;


Reply via email to