re PR tree-optimization/39529 (ICE on valid code)

PR tree-optimization/39529
	* tree-vect-transform.c (vect_create_data_ref_ptr): Call
	mark_sym_for_renaming for the tag copied to the new vector
	pointer.

From-SVN: r145029
This commit is contained in:
Ira Rosen 2009-03-24 12:18:19 +00:00 committed by Ira Rosen
parent d94a427e80
commit 09ac447328
4 changed files with 37 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2009-03-24 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/39529
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
mark_sym_for_renaming for the tag copied to the new vector
pointer.
2009-03-24 Arthur Loiret <aloiret@debian.org>
* config.host (alpha*-*-linux*): Use driver-alpha.o and

View file

@ -1,3 +1,8 @@
2009-03-24 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/39529
* gcc.dg/vect/pr39529.c: New test.
2009-03-24 Dodji Seketeli <dodji@redhat.com>
Jakub Jelinek <jakub@redhat.com>

View file

@ -0,0 +1,21 @@
/* { dg-do compile } */
void
foo (void)
{
char a[1024];
char *p = &a[0];
char *p2;
p2 = p + 1024;
do
{
p += 2;
*(p-2) = 1;
*(p-1) = 1;
} while (p < p2);
}
/* { dg-final { cleanup-tree-dump "vect" } } */

View file

@ -1099,7 +1099,10 @@ vect_create_data_ref_ptr (gimple stmt, struct loop *at_loop,
if (!MTAG_P (tag))
new_type_alias (vect_ptr, tag, DR_REF (dr));
else
set_symbol_mem_tag (vect_ptr, tag);
{
set_symbol_mem_tag (vect_ptr, tag);
mark_sym_for_renaming (tag);
}
/** Note: If the dataref is in an inner-loop nested in LOOP, and we are
vectorizing LOOP (i.e. outer-loop vectorization), we need to create two