| #include "analyzer-decls.h" |
| |
| #define NULL ((void *)0) |
| |
| extern void unknown_fn (void *); |
| |
| static int only_used_by_test_1; |
| |
| static void test_1 (void) |
| { |
| int local_1, local_2; |
| __analyzer_dump_escaped (); /* { dg-warning "escaped: 0: " } */ |
| |
| unknown_fn (NULL); |
| __analyzer_dump_escaped (); /* { dg-warning "escaped: 0: " } */ |
| |
| unknown_fn (&local_1); |
| __analyzer_dump_escaped (); /* { dg-warning "escaped: 1: 'local_1'" } */ |
| |
| /* Should be idempotent. */ |
| unknown_fn (&local_1); |
| __analyzer_dump_escaped (); /* { dg-warning "escaped: 1: 'local_1'" } */ |
| |
| /* Escape a static global. */ |
| unknown_fn (&only_used_by_test_1); |
| __analyzer_dump_escaped (); /* { dg-warning "escaped: 2: 'local_1', 'only_used_by_test_1'" } */ |
| } |