| Daniel Dunbar | a572887 | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 %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 | } | ||||