| /* { dg-additional-options "-Wno-analyzer-too-complex" } */ |
| /* TODO: remove the need for this option (PR analyzer/93695). */ |
| |
| #define NELEMS 10 |
| #define ARRAY_SIZE(a) (sizeof (a) / sizeof (a[0])) |
| |
| void |
| test_1 (void) |
| { |
| int *p[NELEMS]; |
| int i; |
| |
| for (i = 0; i < ARRAY_SIZE (p); ++i) |
| p[i] = __builtin_malloc (sizeof (i)); |
| |
| for (i = 0; i < ARRAY_SIZE (p); ++i) |
| __builtin_free (p [i]); |
| } |
| |
| void |
| test_2 (int n) |
| { |
| int **p; |
| int i; |
| |
| p = (int **)__builtin_malloc (sizeof (int *) * n); |
| if (!p) |
| return; |
| |
| for (i = 0; i < n; ++i) |
| p[i] = __builtin_malloc (sizeof (i)); |
| |
| for (i = 0; i < n; ++i) |
| __builtin_free (p [i]); |
| |
| __builtin_free (p); |
| } |
| |
| void |
| test_3 (int **p, int n) |
| { |
| int i; |
| for (i = 0; i < n; ++i) |
| p[i] = __builtin_malloc (sizeof (i)); |
| } |
| |
| void |
| test_4 (void **p, int n) |
| { |
| int i; |
| for (i = 0; i < n; ++i) |
| __builtin_free (p[i]); |
| } |