re PR tree-optimization/84803 (ICE from ifcvt_memrefs_wont_trap with -O3)
2018-03-12 Richard Biener <rguenther@suse.de> PR tree-optimization/84803 * tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything for refs DR analysis didn't process. * gcc.dg/torture/pr84803.c: New testcase. From-SVN: r258446
This commit is contained in:
parent
b270a5215a
commit
8f1a73b2bb
|
@ -1,3 +1,9 @@
|
|||
2018-03-12 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/84803
|
||||
* tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything
|
||||
for refs DR analysis didn't process.
|
||||
|
||||
2018-03-12 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/84777
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2018-03-12 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/84803
|
||||
* gcc.dg/torture/pr84803.c: New testcase.
|
||||
|
||||
2018-03-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/84813
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
/* { dg-do compile } */
|
||||
|
||||
long a;
|
||||
long *b;
|
||||
void c ();
|
||||
void d ();
|
||||
void
|
||||
e (long f)
|
||||
{
|
||||
if (a)
|
||||
*b = f;
|
||||
}
|
||||
void
|
||||
g ()
|
||||
{
|
||||
c (g, e);
|
||||
}
|
||||
void
|
||||
c (int f, int h ())
|
||||
{
|
||||
d (f, h, "");
|
||||
}
|
||||
void
|
||||
d (int f, int h (), char *i, char *k)
|
||||
{
|
||||
int j;
|
||||
d (f, h, i + 1, k);
|
||||
while (--j)
|
||||
h (*i);
|
||||
}
|
|
@ -864,6 +864,11 @@ base_object_writable (tree ref)
|
|||
static bool
|
||||
ifcvt_memrefs_wont_trap (gimple *stmt, vec<data_reference_p> drs)
|
||||
{
|
||||
/* If DR didn't see a reference here we can't use it to tell
|
||||
whether the ref traps or not. */
|
||||
if (gimple_uid (stmt) == 0)
|
||||
return false;
|
||||
|
||||
data_reference_p *master_dr, *base_master_dr;
|
||||
data_reference_p a = drs[gimple_uid (stmt) - 1];
|
||||
|
||||
|
|
Loading…
Reference in New Issue