Commit 5aed7e2c by Richard Biener Committed by Richard Biener

re PR target/69551 (Wrong code with single element vector insert)

2016-02-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69551
	* tree-ssa-structalias.c (get_constraint_for_ssa_var): When
	looking through aliases adjust DECL_PT_UID to refer to the
	ultimate alias target.

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

From-SVN: r233734
parent 8ba8c375
2016-02-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/69551
* tree-ssa-structalias.c (get_constraint_for_ssa_var): When
looking through aliases adjust DECL_PT_UID to refer to the
ultimate alias target.
2016-02-25 Martin Liska <mliska@suse.cz>
PR middle-end/69919
......
2016-02-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/69551
* gcc.dg/torture/pr69951.c: New testcase.
2016-02-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/48795
......
/* { dg-do run } */
/* { dg-require-alias "" } */
extern void abort (void);
int a = 1, c = 1;
extern int b __attribute__((alias("a")));
extern int d __attribute__((alias("c")));
int main(int argc)
{
int *p, *q;
if (argc)
p = &c, q = &d;
else
p = &b, q = &d;
*p = 1;
*q = 2;
if (*p == 1)
abort();
return 0;
}
......@@ -2943,6 +2943,14 @@ get_constraint_for_ssa_var (tree t, vec<ce_s> *results, bool address_p)
if (node && node->alias && node->analyzed)
{
node = node->ultimate_alias_target ();
/* Canonicalize the PT uid of all aliases to the ultimate target.
??? Hopefully the set of aliases can't change in a way that
changes the ultimate alias target. */
gcc_assert ((! DECL_PT_UID_SET_P (node->decl)
|| DECL_PT_UID (node->decl) == DECL_UID (node->decl))
&& (! DECL_PT_UID_SET_P (t)
|| DECL_PT_UID (t) == DECL_UID (node->decl)));
DECL_PT_UID (t) = DECL_UID (node->decl);
t = node->decl;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment