view gcc/testsuite/gcc.dg/analyzer/data-model-18.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
line wrap: on
line source

#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" "desired" { xfail *-*-* } } */
  /* { dg-bogus "TRUE" "status quo" { xfail *-*-* } .-1 } */
  // FIXME(xfails) ^^^
}