| /* { dg-additional-options "-Wno-analyzer-double-free" } */ |
| |
| #define DOUBLE_FREE() \ |
| do { \ |
| void *p = __builtin_malloc (1024); \ |
| __builtin_free (p); \ |
| __builtin_free (p); \ |
| } while (0) |
| |
| #define DOUBLE_FREE_x_10() \ |
| do { \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| DOUBLE_FREE(); \ |
| } while (0) |
| |
| #define DOUBLE_FREE_x_100() \ |
| do { \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| DOUBLE_FREE_x_10(); \ |
| } while (0) |
| |
| #define DOUBLE_FREE_x_1000() \ |
| do { \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| DOUBLE_FREE_x_100(); \ |
| } while (0) |
| |
| void test_1 (void) |
| { |
| DOUBLE_FREE_x_1000 (); |
| } |