re PR tree-optimization/86047 (ICE in for_each_index, at tree-ssa-loop.c:647)

2018-06-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/86047
	* tree-ssa-loop.c (for_each_index): Glob handling of all
	decls and constants and really handle all of them.

	* gcc.dg/pr86047.c: New testcase.

From-SVN: r261192
This commit is contained in:
Richard Biener 2018-06-05 10:01:49 +00:00 committed by Richard Biener
parent 12b2b9103a
commit d12fd774e0
4 changed files with 27 additions and 11 deletions

View file

@ -1,3 +1,9 @@
2018-06-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/86047
* tree-ssa-loop.c (for_each_index): Glob handling of all
decls and constants and really handle all of them.
2018-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/81497

View file

@ -1,3 +1,8 @@
2018-06-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/86047
* gcc.dg/pr86047.c: New testcase.
2018-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/81497

View file

@ -0,0 +1,13 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
extern void f (int, int);
void g (int a, int b)
{
int i, j;
for (i = a; i <= b; ++i)
__builtin_memcpy (g, f, 6);
for (j = a; j <= b; ++j)
f(j, i);
}

View file

@ -610,17 +610,6 @@ for_each_index (tree *addr_p, bool (*cbck) (tree, tree *, void *), void *data)
return false;
break;
case VAR_DECL:
case PARM_DECL:
case CONST_DECL:
case STRING_CST:
case RESULT_DECL:
case VECTOR_CST:
case COMPLEX_CST:
case INTEGER_CST:
case POLY_INT_CST:
case REAL_CST:
case FIXED_CST:
case CONSTRUCTOR:
return true;
@ -644,6 +633,9 @@ for_each_index (tree *addr_p, bool (*cbck) (tree, tree *, void *), void *data)
return true;
default:
if (DECL_P (*addr_p)
|| CONSTANT_CLASS_P (*addr_p))
return true;
gcc_unreachable ();
}
}