Commit 062a1b36 by Martin Jambor Committed by Martin Jambor

pr58041.c (foo): Accept z by reference.

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.


Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de>

From-SVN: r201538
parent a2e2a668
2013-08-06 Martin Jambor <mjambor@suse.cz> 2013-08-06 Martin Jambor <mjambor@suse.cz>
Bernd Edlinger <bernd.edlinger@hotmail.de>
* gcc.dg/torture/pr58041.c (foo): Accept z by reference.
(a): Fix constructor.
2013-08-06 Martin Jambor <mjambor@suse.cz>
PR fortran/57987 PR fortran/57987
* gfortran.dg/pr57987.f90: New test. * gfortran.dg/pr57987.f90: New test.
......
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
typedef long long V typedef long long V
__attribute__ ((vector_size (2 * sizeof (long long)), may_alias)); __attribute__ ((vector_size (2 * sizeof (long long)), may_alias));
typedef struct S { V v; } P __attribute__((aligned (1)));
struct s struct s
{ {
char u; char u;
...@@ -12,24 +10,24 @@ struct s ...@@ -12,24 +10,24 @@ struct s
} __attribute__((packed,aligned(1))); } __attribute__((packed,aligned(1)));
__attribute__((noinline, noclone)) __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]; V a = x->v[y];
x->v[y] = z; x->v[y] = *z;
return a[1]; return a[1];
} }
struct s a = {0,{0,0}}; struct s a = {0,{{0,0},{0,0}}};
int main() int main()
{ {
V v1 = {0,1}; V v1 = {0,1};
V v2 = {0,2}; V v2 = {0,2};
if (foo(&a,0,v1) != 0) if (foo(&a,0,&v1) != 0)
__builtin_abort(); __builtin_abort();
if (foo(&a,0,v2) != 1) if (foo(&a,0,&v2) != 1)
__builtin_abort(); __builtin_abort();
if (foo(&a,1,v1) != 0) if (foo(&a,1,&v1) != 0)
__builtin_abort(); __builtin_abort();
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment