This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR59471


On Tue, Jan 07, 2014 at 03:54:56PM +0100, Richard Biener wrote:
> 2014-01-07  Richard Biener  <rguenther@suse.de>
> 
> 	PR middle-end/59471
> 	* gimplify.c (gimplify_expr): Gimplify register-register type
> 	VIEW_CONVERT_EXPRs to separate stmts.
> 
> 	* gcc.dg/pr59471.c: New testcase.

The testcase fails on i686-linux, because of the ABI warnings.

I've verified following change ICEd without your fix and works with your
fix, bootstrapped/regtested it on x86_64-linux and i686-linux and committed
to trunk as obvious.

2014-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/59471
	* gcc.dg/pr59471.c (foo): Avoid vector type arguments or return
	type, use pointers to vector type instead.

--- gcc/testsuite/gcc.dg/pr59471.c.jj	2014-01-08 10:23:20.000000000 +0100
+++ gcc/testsuite/gcc.dg/pr59471.c	2014-01-08 17:52:42.000000000 +0100
@@ -9,8 +9,8 @@ __attribute__ ((__vector_size__ (16)));
 typedef unsigned int uint32x4_t
 __attribute__ ((__vector_size__ (16)));
 
-uint8x4_t
-foo (uint16x8_t x)
+void
+foo (uint16x8_t *x, uint8x4_t *y)
 {
-  return (uint8x4_t) ((uint32x4_t) x)[0];
+  *y = (uint8x4_t) ((uint32x4_t) (*x))[0];
 }


	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]