| Daniel Dunbar | 8fbe78f | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 %s -emit-llvm -o %t | 
| Eli Friedman | f408470 | 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 | 76dbc04 | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 11 | |
| Anders Carlsson | 118467d | 2008-12-21 03:40:32 +0000 | [diff] [blame] | 12 | int c(int n) | 
| Anders Carlsson | 76dbc04 | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 13 | { | 
| Anders Carlsson | 118467d | 2008-12-21 03:40:32 +0000 | [diff] [blame] | 14 | return sizeof(int[n]); | 
| Anders Carlsson | 76dbc04 | 2008-12-21 03:33:21 +0000 | [diff] [blame] | 15 | } | 
| Anders Carlsson | d19fd0d | 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 | 7ccf3e4 | 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 | 9444638 | 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 | } | ||||