aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/analyzer/data-model-18.c
blob: 86e8110ccf67796ff94274e15d1d7ddcd404b4cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "analyzer-decls.h"

void test (int *p, int i, int j)
{
  p[3] = 42;
  __analyzer_eval (p[3] == 42); /* { dg-warning "TRUE" } */
  __analyzer_eval (*(p + 3) == 42); /* { dg-warning "TRUE" } */
  __analyzer_eval (p[i] == 42); /* { dg-warning "UNKNOWN" } */
  __analyzer_eval (p[j] == 42); /* { dg-warning "UNKNOWN" } */

  //__analyzer_dump ();

  p[i] = 17;

  //__analyzer_dump ();

  __analyzer_eval (p[3] == 42); /* { dg-warning "UNKNOWN" } */
  __analyzer_eval (p[i] == 17); /* { dg-warning "TRUE" } */
  __analyzer_eval (p[j] == 17); /* { dg-warning "UNKNOWN" } */
}