summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/analyzer/symbolic-4.c
blob: a466f912007cf38eb23315b6faf34cb82f0422df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string.h>
#include "analyzer-decls.h"

void test_1 (int i, int j, int k)
{
  int iarr[16];
  iarr[i] = j;
  __analyzer_eval (iarr[i] == j); /* { dg-warning "TRUE" } */
  __analyzer_eval (iarr[k] == j); /* { dg-warning "UNKNOWN" } */

  memset (iarr, 0, sizeof (iarr));
  __analyzer_eval (iarr[0] == 0); /* { dg-warning "TRUE" } */
  __analyzer_eval (iarr[i] == 0); /* { dg-warning "TRUE" } */
  __analyzer_eval (iarr[i] == j); /* { dg-warning "UNKNOWN" } */

  iarr[i] = j;
  __analyzer_eval (iarr[i] == j); /* { dg-warning "TRUE" } */
  __analyzer_eval (iarr[0] == 0); /* { dg-warning "UNKNOWN" } */
  __analyzer_eval (iarr[i] == 0); /* { dg-warning "UNKNOWN" } */
}