Commit 89c0c1fd by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/69915 (ICE: SIGSEGV with -O -ftracer with broken backtrace)

	PR middle-end/69915
	* tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
	elements.

	* gcc.dg/pr69915.c: New test.

From-SVN: r233664
parent 0683fd27
2016-02-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/69915
* tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
elements.
2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR rtl-optimization/69886 PR rtl-optimization/69886
......
2016-02-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/69915
* gcc.dg/pr69915.c: New test.
2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR rtl-optimization/69886 PR rtl-optimization/69886
......
/* PR middle-end/69915 */
/* { dg-do compile } */
/* { dg-options "-O -ftracer" } */
typedef unsigned short V __attribute__ ((vector_size (32)));
unsigned
foo (unsigned x, unsigned c, V *p)
{
V v = *p;
if (c < 360)
v = (V) { 0 };
v *= (V) { x };
return v[1];
}
...@@ -1749,7 +1749,7 @@ build_vector_from_ctor (tree type, vec<constructor_elt, va_gc> *v) ...@@ -1749,7 +1749,7 @@ build_vector_from_ctor (tree type, vec<constructor_elt, va_gc> *v)
else else
vec[pos++] = value; vec[pos++] = value;
} }
for (; idx < TYPE_VECTOR_SUBPARTS (type); ++idx) while (pos < TYPE_VECTOR_SUBPARTS (type))
vec[pos++] = build_zero_cst (TREE_TYPE (type)); vec[pos++] = build_zero_cst (TREE_TYPE (type));
return build_vector (type, vec); return build_vector (type, vec);
......
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