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
This commit is contained in:
parent
8ba8c3757b
commit
5aed7e2c0d
|
@ -1,3 +1,10 @@
|
|||
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
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
/* { 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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue