Daniel Dunbar | d7d5f02 | 2009-03-24 02:24:46 +0000 | [diff] [blame] | 1 | // RUN: clang-cc %s -emit-llvm -o %t |
Eli Friedman | 8f39f5e | 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 | b50525b | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 11 | |
Anders Carlsson | 0269709 | 2008-12-21 03:40:32 +0000 | [diff] [blame] | 12 | int c(int n) |
Anders Carlsson | b50525b | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 13 | { |
Anders Carlsson | 0269709 | 2008-12-21 03:40:32 +0000 | [diff] [blame] | 14 | return sizeof(int[n]); |
Anders Carlsson | b50525b | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 15 | } |
Anders Carlsson | c756a8e | 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 | 22ab8d8 | 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 | bdad6b6 | 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 | } |