summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/tree-ssa/pr22117.c
blob: d265d5e2c13eb67fe291d62d94f46b2154bef413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* PR tree-optimization/22117
   VRP used think that &p[q] is nonzero even though p and q are both
   known to be zero after entering the first two "if" statements.  */

/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-vrp1" } */

void
foo (int *p, int q)
{
  if (p == 0)
    {
      if (q == 0)
	{
	  int *r = &p[q];
	  if (r != 0)
	    link_error ();
	}
    }
}

/* { dg-final { scan-tree-dump-times "Folding predicate r_.* != 0B to 0" 1 "vrp1" } } */
/* { dg-final { cleanup-tree-dump "vrp1" } } */