Patchwork Fix PR 58041 testcase failuers on i686

login
register
mail settings
Submitter Martin Jambor
Date Aug. 6, 2013, 5:33 p.m.
Message ID <20130806173315.GG3166@virgil.suse>
Download mbox | patch
Permalink /patch/265181/
State New
Headers show

Comments

Martin Jambor - Aug. 6, 2013, 5:33 p.m.
Hi,

Bernd Edlinger reported that my new testcase for PR 58041 generates
warnings about ABI on i686.  The following fixes it so I am going to
commit it now to both trunk and the 4.8 branch so that as few people
as possible see new failures.

Sorry for the fuss and thanks Bernd for reporting and testing,

Martin


2013-08-06  Martin Jambor  <mjambor@suse.cz>
	    Bernd Edlinger <bernd.edlinger@hotmail.de>

testsuite/
	* gcc.dg/torture/pr58041.c (foo): Accept z by reference.
	(a): Fix constructor.

Patch

diff --git a/gcc/testsuite/gcc.dg/torture/pr58041.c b/gcc/testsuite/gcc.dg/torture/pr58041.c
index e22ec3c..169a71a 100644
--- a/gcc/testsuite/gcc.dg/torture/pr58041.c
+++ b/gcc/testsuite/gcc.dg/torture/pr58041.c
@@ -3,8 +3,6 @@ 
 typedef long long V
   __attribute__ ((vector_size (2 * sizeof (long long)), may_alias));
 
-typedef struct S { V v; } P __attribute__((aligned (1)));
-
 struct s
 {
   char u;
@@ -12,24 +10,24 @@  struct s
 } __attribute__((packed,aligned(1)));
 
 __attribute__((noinline, noclone))
-long long foo(struct s *x, int y, V z)
+long long foo(struct s *x, int y, V *z)
 {
   V a = x->v[y];
-  x->v[y] = z;
+  x->v[y] = *z;
   return a[1];
 }
 
-struct s a = {0,{0,0}};
+struct s a = {0,{{0,0},{0,0}}};
 int main()
 {
   V v1 = {0,1};
   V v2 = {0,2};
 
-  if (foo(&a,0,v1) != 0)
+  if (foo(&a,0,&v1) != 0)
     __builtin_abort();
-  if (foo(&a,0,v2) != 1)
+  if (foo(&a,0,&v2) != 1)
     __builtin_abort();
-  if (foo(&a,1,v1) != 0)
+  if (foo(&a,1,&v1) != 0)
     __builtin_abort();
   return 0;
 }