1 #include "analyzer-decls.h"
2 
3 #define NULL ((void *)0)
4 
5 extern int *const p1;
6 
7 int *const p2;
8 
9 int v3;
10 extern int *const p3 = &v3; /* { dg-warning "'p3' initialized and declared 'extern'" } */
11 
12 int v4;
13 int *const p4 = &v4;
14 
main(void)15 int main (void)
16 {
17   __analyzer_describe (0, p1); /* { dg-message "INIT_VAL\\(p1\\)" } */
18   __analyzer_eval (p1 == NULL); /* { dg-message "UNKNOWN" } */
19 
20   __analyzer_eval (p2 == NULL); /* { dg-message "TRUE" } */
21 
22   __analyzer_describe (0, p3); /* { dg-message "&v3" } */
23   __analyzer_eval (p3 == NULL); /* { dg-message "FALSE" } */
24 
25   __analyzer_describe (0, p4); /* { dg-message "&v4" } */
26   __analyzer_eval (p4 == NULL); /* { dg-message "FALSE" } */
27 
28   return p1[0];
29 }
30