From: aldyh Date: Fri, 27 Jan 2012 21:53:40 +0000 (+0000) Subject: PR testsuite/52011 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8486bb628f7b4482426d77009850dff7efe1f9d3;p=thirdparty%2Fgcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183648 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7ebce8dd4ded..b3cb2338dc44 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 6dba2527cd88..f49a2626e585 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 b99c5bf95e93..b27060228758 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 6373ecc12ac9..4b7f7d7510b1 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 a377e666605b..620ce16b8c8b 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 000000000000..add5a297b517 --- /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(""); }