Daniel Dunbar | ffd408a | 2009-03-24 02:24:46 +0000 | [diff] [blame] | 1 | // RUN: clang-cc %s -emit-llvm -o %t |
Eli Friedman | 8fef47e | 2008-12-20 23:11:59 +0000 | [diff] [blame] | 2 | |
3 | int b(char* x); | ||||
4 | |||||
5 | // Extremely basic VLA test | ||||
6 | void a(int x) { | ||||
7 | char arry[x]; | ||||
8 | arry[0] = 10; | ||||
9 | b(arry); | ||||
10 | } | ||||
Anders Carlsson | 6cb99b7 | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 11 | |
Anders Carlsson | 3288ce9 | 2008-12-21 03:40:32 +0000 | [diff] [blame] | 12 | int c(int n) |
Anders Carlsson | 6cb99b7 | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 13 | { |
Anders Carlsson | 3288ce9 | 2008-12-21 03:40:32 +0000 | [diff] [blame] | 14 | return sizeof(int[n]); |
Anders Carlsson | 6cb99b7 | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 15 | } |
Anders Carlsson | 0bdae8d | 2009-02-09 21:48:07 +0000 | [diff] [blame] | 16 | |
17 | int f0(int x) { | ||||
18 | int vla[x]; | ||||
19 | return vla[x-1]; | ||||
20 | } | ||||
Anders Carlsson | 7a56d8c | 2009-02-10 22:50:24 +0000 | [diff] [blame] | 21 | |
22 | void | ||||
23 | f(int count) | ||||
24 | { | ||||
25 | int a[count]; | ||||
26 | |||||
27 | do { } while (0); | ||||
28 | |||||
29 | if (a[0] != 3) { | ||||
30 | } | ||||
31 | } | ||||
Eli Friedman | 16444cf | 2009-05-29 19:23:46 +0000 | [diff] [blame] | 32 | |
33 | void g(int count) { | ||||
34 | // Make sure we emit sizes correctly in some obscure cases | ||||
35 | int (*a[5])[count]; | ||||
36 | int (*b)[][count]; | ||||
37 | } |