| /* PR middle-end/94004 - missing -Walloca on calls to alloca due |
| to -Wno-system-headers |
| { dg-do compile } |
| { dg-options "-O2 -Wall -Walloca-larger-than=8 -ftrack-macro-expansion=0" } |
| { dg-require-effective-target alloca } */ |
| |
| #include "Walloca-larger-than-3.h" |
| |
| void sink (void*, ...); |
| |
| void call_builtin_alloca (int n) |
| { |
| if (n < 9) |
| n = 9; |
| void *p = __builtin_alloca (n); // { dg-warning "\\\[-Walloca-larger-than" } |
| sink (p, 0); |
| } |
| |
| void call_alloca_sys_hdr (int n) |
| { |
| if (n < 9) |
| n = 9; |
| void *p = alloca (n); // { dg-warning "\\\[-Walloca-larger-than" } |
| sink (p, 1); |
| } |
| |
| static inline void inline_call_alloca (int n) |
| { |
| if (n > 9) |
| n = 9; |
| void *p = alloca (n); // { dg-warning "\\\[-Walloca-larger-than" } |
| sink (p, 2); |
| } |
| |
| void make_inlined_call (void) |
| { |
| inline_call_alloca (10); |
| } |