re PR tree-optimization/92056 (ice in expr_object_size, at tree-object-si ze.c:675 with -O3)
PR tree-optimization/92056 * tree-object-size.c (cond_expr_object_size): Return early if then_ processing resulted in unknown size. * gcc.c-torture/compile/pr92056.c: New test. From-SVN: r277093
This commit is contained in:
parent
432b4f729d
commit
0bbb0ca112
@ -1,5 +1,9 @@
|
|||||||
2019-10-17 Jakub Jelinek <jakub@redhat.com>
|
2019-10-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/92056
|
||||||
|
* tree-object-size.c (cond_expr_object_size): Return early if then_
|
||||||
|
processing resulted in unknown size.
|
||||||
|
|
||||||
PR tree-optimization/92115
|
PR tree-optimization/92115
|
||||||
* tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into
|
* tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into
|
||||||
temporary if it could trap.
|
temporary if it could trap.
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
2019-10-17 Jakub Jelinek <jakub@redhat.com>
|
2019-10-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/92056
|
||||||
|
* gcc.c-torture/compile/pr92056.c: New test.
|
||||||
|
|
||||||
PR tree-optimization/92115
|
PR tree-optimization/92115
|
||||||
* gcc.dg/pr92115.c: New test.
|
* gcc.dg/pr92115.c: New test.
|
||||||
|
|
||||||
|
18
gcc/testsuite/gcc.c-torture/compile/pr92056.c
Normal file
18
gcc/testsuite/gcc.c-torture/compile/pr92056.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/* PR tree-optimization/92056 */
|
||||||
|
|
||||||
|
const char *d;
|
||||||
|
|
||||||
|
void
|
||||||
|
foo (int c, char *e, const char *a, const char *b)
|
||||||
|
{
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case 33:
|
||||||
|
for (;; d++)
|
||||||
|
if (__builtin_strcmp (b ? : "", d))
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
__builtin_sprintf (e, a);
|
||||||
|
}
|
||||||
|
}
|
@ -903,6 +903,9 @@ cond_expr_object_size (struct object_size_info *osi, tree var, gimple *stmt)
|
|||||||
else
|
else
|
||||||
expr_object_size (osi, var, then_);
|
expr_object_size (osi, var, then_);
|
||||||
|
|
||||||
|
if (object_sizes[object_size_type][varno] == unknown[object_size_type])
|
||||||
|
return reexamine;
|
||||||
|
|
||||||
if (TREE_CODE (else_) == SSA_NAME)
|
if (TREE_CODE (else_) == SSA_NAME)
|
||||||
reexamine |= merge_object_sizes (osi, var, else_, 0);
|
reexamine |= merge_object_sizes (osi, var, else_, 0);
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user