diff mbox

Fix PR54920

Message ID alpine.LNX.2.00.1210151317500.4063@zhemvz.fhfr.qr
State New
Headers show

Commit Message

Richard Biener Oct. 15, 2012, 11:18 a.m. UTC
This fixes PR54920.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied on
trunk and the 4.7 branch.

Richard.

2012-10-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54920
	* tree-ssa-pre.c (create_expression_by_pieces): Properly
	allocate temporary storage for all NARY elements.

	* gcc.dg/torture/pr54920.c: New testcase.
diff mbox

Patch

Index: gcc/tree-ssa-pre.c
===================================================================
--- gcc/tree-ssa-pre.c	(revision 192398)
+++ gcc/tree-ssa-pre.c	(working copy)
@@ -2853,7 +2853,7 @@  create_expression_by_pieces (basic_block
     case NARY:
       {
 	vn_nary_op_t nary = PRE_EXPR_NARY (expr);
-	tree genop[4];
+	tree *genop = XALLOCAVEC (tree, nary->length);
 	unsigned i;
 	for (i = 0; i < nary->length; ++i)
 	  {
Index: gcc/testsuite/gcc.dg/torture/pr54920.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/pr54920.c	(revision 0)
+++ gcc/testsuite/gcc.dg/torture/pr54920.c	(working copy)
@@ -0,0 +1,13 @@ 
+/* { dg-do compile } */
+
+typedef short __v8hi __attribute__ ((__vector_size__ (16)));
+typedef long long __m128i __attribute__ ((__vector_size__ (16)));
+int a;
+__m128i b;
+
+void
+fn1 ()
+{
+  while (1)
+    b = (__m128i) (__v8hi) { a, 0, 0, 0, 0, 0 };
+}