mirror of git://gcc.gnu.org/git/gcc.git
tree-ssa: Fix ICE in build_vector_type [PR93780]
The following testcase ICEs, because execute_update_addresses_taken attempts to create a VECTOR_TYPE with non-power of 2 number of elts. Fixed by guarding it with the corresponding predicate. 2020-02-18 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/93780 * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p before calling build_vector_type. (execute_update_addresses_taken): Likewise. * gcc.dg/pr93780.c: New test.
This commit is contained in:
parent
8def1d525c
commit
be7c145ad5
|
@ -1,5 +1,10 @@
|
|||
2020-02-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/93780
|
||||
* tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p
|
||||
before calling build_vector_type.
|
||||
(execute_update_addresses_taken): Likewise.
|
||||
|
||||
PR driver/93796
|
||||
* params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help
|
||||
typo, functoin -> function.
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
2020-02-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/93780
|
||||
* gcc.dg/pr93780.c: New test.
|
||||
|
||||
2020-02-17 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
PR analyzer/93775
|
||||
* gcc.dg/analyzer/20020129-1.c: New test.
|
||||
|
||||
2020-02-17 Alexandre Oliva <oliva@adacore.com>
|
||||
2020-02-17 Alexandre Oliva <oliva@adacore.com>
|
||||
|
||||
* gcc.dg/tls/emutls-3.c: New, combining emutls-2.c and
|
||||
thr-init-2.c into an execution test with explicitly common
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
/* PR tree-optimization/93780 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2" } */
|
||||
/* { dg-additional-options "-mavx" { target avx } } */
|
||||
|
||||
typedef float V __attribute__((vector_size (32)));
|
||||
|
||||
float
|
||||
foo (void)
|
||||
{
|
||||
const float init[6] = {};
|
||||
V v = {};
|
||||
__builtin_memcpy (&v, init, sizeof (init));
|
||||
return v[0];
|
||||
}
|
|
@ -1550,7 +1550,8 @@ non_rewritable_lvalue_p (tree lhs)
|
|||
&& multiple_p (lhs_bits,
|
||||
tree_to_uhwi
|
||||
(TYPE_SIZE (TREE_TYPE (TREE_TYPE (decl)))),
|
||||
&nelts))
|
||||
&nelts)
|
||||
&& valid_vector_subparts_p (nelts))
|
||||
{
|
||||
if (known_eq (nelts, 1u))
|
||||
return false;
|
||||
|
@ -1925,7 +1926,8 @@ execute_update_addresses_taken (void)
|
|||
(TYPE_SIZE (TREE_TYPE
|
||||
(TREE_TYPE (sym)))),
|
||||
&nelts)
|
||||
&& maybe_ne (nelts, 1u))
|
||||
&& maybe_ne (nelts, 1u)
|
||||
&& valid_vector_subparts_p (nelts))
|
||||
temtype = build_vector_type (temtype, nelts);
|
||||
tree tem = make_ssa_name (temtype);
|
||||
gimple *pun
|
||||
|
|
Loading…
Reference in New Issue