(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
analyzer/
aliasing-2.c
       1  #include "analyzer-decls.h"
       2  
       3  extern void escape (int *p);
       4  
       5  int a;
       6  void test (int *p, int x)
       7  {
       8    int y;
       9  
      10    a = 17;
      11    x = 42;
      12    y = 13;
      13  
      14    __analyzer_eval (a == 17); /* { dg-warning "TRUE" } */
      15    __analyzer_eval (x == 42); /* { dg-warning "TRUE" } */
      16    __analyzer_eval (y == 13); /* { dg-warning "TRUE" } */
      17  
      18    escape (&x);
      19    __analyzer_eval (a == 17); /* { dg-warning "UNKNOWN" } */
      20    __analyzer_eval (x == 42); /* { dg-warning "UNKNOWN" } */
      21    __analyzer_eval (y == 13); /* { dg-warning "TRUE" } */
      22  
      23    __analyzer_eval (p == &a); /* { dg-warning "UNKNOWN" } */
      24    __analyzer_eval (p == &x); /* { dg-warning "FALSE" } */
      25    __analyzer_eval (p == &y); /* { dg-warning "FALSE" } */
      26    
      27    *p = 73;
      28  
      29    __analyzer_eval (a == 17); /* { dg-warning "UNKNOWN" } */
      30    __analyzer_eval (x == 42); /* { dg-warning "UNKNOWN" } */
      31    __analyzer_eval (y == 13); /* { dg-warning "TRUE" } */
      32  }