]>
Commit | Line | Data |
---|---|---|
adc577c5 | 1 | /* { dg-do compile } */ |
90e02692 | 2 | /* { dg-require-effective-target alloca } */ |
adc577c5 AH |
3 | /* { dg-options "-Walloca-larger-than=2000 -O2" } */ |
4 | ||
5 | void f (void *); | |
6 | ||
7 | void | |
8 | g1 (int n) | |
9 | { | |
10 | void *p; | |
11 | if (n > 0 && n < 2000) | |
fa9d1ad2 | 12 | p = __builtin_alloca (n); // { dg-bogus "unbounded use of 'alloca'" "" } |
adc577c5 AH |
13 | else |
14 | p = __builtin_malloc (n); | |
15 | f (p); | |
16 | } | |
17 | ||
18 | void | |
19 | g2 (int n) | |
20 | { | |
21 | void *p; | |
22 | if (n < 2000) | |
495ec0b2 | 23 | p = __builtin_alloca (n); // { dg-warning "may be too large" } |
adc577c5 AH |
24 | else |
25 | p = __builtin_malloc (n); | |
26 | f (p); | |
27 | } | |
28 | ||
29 | void | |
30 | g3 (int n) | |
31 | { | |
32 | void *p; | |
33 | if (n > 0 && n < 3000) | |
34 | { | |
495ec0b2 | 35 | p = __builtin_alloca (n); // { dg-warning "may be too large" } |
adc577c5 AH |
36 | } |
37 | else | |
38 | p = __builtin_malloc (n); | |
39 | f (p); | |
40 | } |