From a6bc04232912152fff06106d082c8f04a6d6fa91 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Fri, 27 Jan 2012 21:53:40 +0000 Subject: [PATCH] re PR testsuite/52011 (FAIL: gcc.dg/lto/trans-mem-* c_lto_trans-mem-*.o assemble, -flto -fgnu-tm in 32 bit mode) PR testsuite/52011 * gcc.dg/lto/trans-mem.h: New file. * gcc.dg/lto/trans-mem-2_0.c: Include it. * gcc.dg/lto/trans-mem-1_1.c: Same. * gcc.dg/lto/trans-mem-4_1.c: Same. * gcc.dg/lto/trans-mem-3_1.c: Same. From-SVN: r183648 --- gcc/testsuite/ChangeLog | 9 +++++++++ gcc/testsuite/gcc.dg/lto/trans-mem-1_1.c | 11 +---------- gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c | 11 +---------- gcc/testsuite/gcc.dg/lto/trans-mem-3_1.c | 11 +---------- gcc/testsuite/gcc.dg/lto/trans-mem-4_1.c | 10 +--------- gcc/testsuite/gcc.dg/lto/trans-mem.h | 22 ++++++++++++++++++++++ 6 files changed, 35 insertions(+), 39 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/lto/trans-mem.h diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7ebce8dd4de..b3cb2338dc4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2012-01-27 Aldy Hernandez + + PR testsuite/52011 + * gcc.dg/lto/trans-mem.h: New file. + * gcc.dg/lto/trans-mem-2_0.c: Include it. + * gcc.dg/lto/trans-mem-1_1.c: Same. + * gcc.dg/lto/trans-mem-4_1.c: Same. + * gcc.dg/lto/trans-mem-3_1.c: Same. + 2012-01-27 Tobias Burnus PR fortran/52022 diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem-1_1.c b/gcc/testsuite/gcc.dg/lto/trans-mem-1_1.c index 6dba2527cd8..f49a2626e58 100644 --- a/gcc/testsuite/gcc.dg/lto/trans-mem-1_1.c +++ b/gcc/testsuite/gcc.dg/lto/trans-mem-1_1.c @@ -1,10 +1 @@ -#include - -#define noinline __attribute__((noinline,noclone,used)) - -noinline uint32_t _ITM_beginTransaction(uint32_t a, ...) { asm(""); } -noinline void _ITM_commitTransaction (void) { asm(""); } -noinline void _ITM_WU4 (void *a, uint32_t b) { asm(""); } -noinline void _ITM_WU8 (void *a, uint64_t b) { asm(""); } -noinline void _ITM_registerTMCloneTable (void) { asm(""); } -noinline void _ITM_deregisterTMCloneTable (void) { asm(""); } +#include "trans-mem.h" diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c b/gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c index b99c5bf95e9..b2706022875 100644 --- a/gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c +++ b/gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c @@ -2,19 +2,10 @@ /* { dg-lto-do link } */ /* { dg-require-effective-target stdint_types } */ -#include +#include "trans-mem.h" extern void foobar() __attribute__((transaction_callable)); -#define noinline __attribute__((noinline,noclone,used)) - -noinline uint32_t _ITM_beginTransaction(uint32_t a, ...) { asm(""); } -noinline void _ITM_commitTransaction (void) { asm(""); } -noinline void _ITM_WU4 (void *a, uint32_t b) { asm(""); } -noinline void _ITM_WU8 (void *a, uint64_t b) { asm(""); } -noinline void _ITM_registerTMCloneTable (void) { asm(""); } -noinline void _ITM_deregisterTMCloneTable (void) { asm(""); } - main() { __transaction_relaxed diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem-3_1.c b/gcc/testsuite/gcc.dg/lto/trans-mem-3_1.c index 6373ecc12ac..4b7f7d7510b 100644 --- a/gcc/testsuite/gcc.dg/lto/trans-mem-3_1.c +++ b/gcc/testsuite/gcc.dg/lto/trans-mem-3_1.c @@ -1,6 +1,6 @@ /* { dg-options "-fgnu-tm" } */ -#include +#include "trans-mem.h" extern int i; @@ -8,12 +8,3 @@ main() { __transaction_atomic { i = 0; } } - -#define noinline __attribute__((noinline,noclone,used)) - -noinline uint32_t _ITM_beginTransaction(uint32_t a, ...) { asm(""); } -noinline void _ITM_commitTransaction (void) { asm(""); } -noinline void _ITM_WU4 (void *a, uint32_t b) { asm(""); } -noinline void _ITM_WU8 (void *a, uint64_t b) { asm(""); } -noinline void _ITM_registerTMCloneTable (void) { asm(""); } -noinline void _ITM_deregisterTMCloneTable (void) { asm(""); } diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem-4_1.c b/gcc/testsuite/gcc.dg/lto/trans-mem-4_1.c index a377e666605..620ce16b8c8 100644 --- a/gcc/testsuite/gcc.dg/lto/trans-mem-4_1.c +++ b/gcc/testsuite/gcc.dg/lto/trans-mem-4_1.c @@ -1,14 +1,6 @@ -#include +#include "trans-mem.h" __attribute__((transaction_safe)) void foo() { } - -uint32_t _ITM_beginTransaction(uint32_t prop, ...) -{ -} - -void __builtin__ITM_commitTransaction (void) -{ -} diff --git a/gcc/testsuite/gcc.dg/lto/trans-mem.h b/gcc/testsuite/gcc.dg/lto/trans-mem.h new file mode 100644 index 00000000000..add5a297b51 --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/trans-mem.h @@ -0,0 +1,22 @@ +#include + +/* Dummy declarations for common TM supporting functions. */ + +/* These must be in sync with both libitm/libitm.h and the TM builtin + definitions in gcc/gtm-builtins.def. */ + +#define noinline __attribute__((noinline,noclone,used)) + +#ifdef __i386__ +/* Only for 32-bit x86. */ +# define ITM_REGPARM __attribute__((regparm(2))) +#else +# define ITM_REGPARM +#endif + +ITM_REGPARM noinline uint32_t _ITM_beginTransaction(uint32_t a, ...) { asm(""); } +ITM_REGPARM noinline void _ITM_commitTransaction (void) { asm(""); } +ITM_REGPARM noinline void _ITM_WU4 (void *a, uint32_t b) { asm(""); } +ITM_REGPARM noinline void _ITM_WU8 (void *a, uint64_t b) { asm(""); } +noinline void _ITM_registerTMCloneTable (void) { asm(""); } +noinline void _ITM_deregisterTMCloneTable (void) { asm(""); }