aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2012-01-27 21:53:40 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2012-01-27 21:53:40 +0000
commita6bc04232912152fff06106d082c8f04a6d6fa91 (patch)
treecc65b5fa9baa01064e5e7e26ee11e5d581da8912
parent7dcbaaa984509967baf669a2e9888098960bfa9a (diff)
downloadgcc-a6bc04232912152fff06106d082c8f04a6d6fa91.zip
gcc-a6bc04232912152fff06106d082c8f04a6d6fa91.tar.gz
gcc-a6bc04232912152fff06106d082c8f04a6d6fa91.tar.bz2
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
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gcc.dg/lto/trans-mem-1_1.c11
-rw-r--r--gcc/testsuite/gcc.dg/lto/trans-mem-2_0.c11
-rw-r--r--gcc/testsuite/gcc.dg/lto/trans-mem-3_1.c11
-rw-r--r--gcc/testsuite/gcc.dg/lto/trans-mem-4_1.c10
-rw-r--r--gcc/testsuite/gcc.dg/lto/trans-mem.h22
6 files changed, 35 insertions, 39 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7ebce8dd..b3cb233 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2012-01-27 Aldy Hernandez <aldyh@redhat.com>
+
+ 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 <burnus@net-b.de>
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 6dba252..f49a262 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 <stdint.h>
-
-#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 b99c5bf..b270602 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 <stdint.h>
+#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 6373ecc..4b7f7d7 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 <stdint.h>
+#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 a377e66..620ce16 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 <stdint.h>
+#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 0000000..add5a29
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/trans-mem.h
@@ -0,0 +1,22 @@
+#include <stdint.h>
+
+/* 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(""); }