re PR tree-optimization/55687 (ICE in hide_evolution_in_other_loops_than_loop, at tree-chrec.c:716)

2012-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55687
	* tree-chrec.h (no_evolution_in_loop_p): Properly use
	tree_contains_chrecs.

	* gcc.dg/torture/pr55687.c: New testcase.

From-SVN: r194498
This commit is contained in:
Richard Biener 2012-12-14 12:57:27 +00:00 committed by Richard Biener
parent 6d9d886cd6
commit 105e8c0682
4 changed files with 41 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2012-12-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/55687
* tree-chrec.h (no_evolution_in_loop_p): Properly use
tree_contains_chrecs.
2012-12-13 Richard Henderson <rth@redhat.com>
PR middle-end/55492

View File

@ -1,3 +1,8 @@
2012-12-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/55687
* gcc.dg/torture/pr55687.c: New testcase.
2012-12-13 Jakub Jelinek <jakub@redhat.com>
PR c++/55652

View File

@ -0,0 +1,29 @@
/* { dg-do compile } */
typedef struct _IO_FILE FILE;
typedef short gshort;
typedef struct _GString GString;
extern char *fgets(char *, int, FILE *);
void verbose_text_loop (void *data)
{
FILE *dev_vcs;
char buf[81];
GString *buf_str;
gshort i, j;
while (1)
{
for (i = 1; i <= 7; i++)
{
while (fgets (buf, 81, dev_vcs))
{
for (j = 0; j < __builtin_strlen (buf); j++)
if (buf[j] != ' ')
break;
for (; j < __builtin_strlen (buf); j++)
g_string_append_c_inline (buf_str, buf[j]);
}
}
}
}

View File

@ -117,7 +117,7 @@ no_evolution_in_loop_p (tree chrec, unsigned loop_num, bool *res)
STRIP_NOPS (chrec);
scev = hide_evolution_in_other_loops_than_loop (chrec, loop_num);
*res = !tree_is_chrec (scev);
*res = !tree_contains_chrecs (scev, NULL);
return true;
}