===================================================================
@@ -7572,9 +7572,12 @@ compute_dependence_clique (void)
EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, j, bi)
{
varinfo_t oi = get_varinfo (j);
+ if (oi->head != j)
+ oi = get_varinfo (oi->head);
if (oi->is_restrict_var)
{
- if (restrict_var)
+ if (restrict_var
+ && restrict_var != oi)
{
if (dump_file && (dump_flags & TDF_DETAILS))
{
===================================================================
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
+/* { dg-options "-fdump-tree-fre1" } */
+
+struct S { int i; void *p; int j; };
+int
+foo (struct S * __restrict p, int *q, int flag)
+{
+ int *x = &p->j;
+ if (flag)
+ x = &p->i;
+ *q = 1;
+ *x = 2;
+ return *q;
+}
+
+/* { dg-final { scan-tree-dump "return 1;" "fre1" } } */