Reid Kleckner | 2c5a38e | 2013-04-10 21:10:39 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -triple=i686-apple-darwin9 -emit-llvm -o - %s | FileCheck %s |
Anders Carlsson | 559a833 | 2009-02-22 01:38:57 +0000 | [diff] [blame] | 2 | |
Chris Lattner | eaf2bb8 | 2009-02-24 22:18:39 +0000 | [diff] [blame] | 3 | int main() { |
Anders Carlsson | 559a833 | 2009-02-22 01:38:57 +0000 | [diff] [blame] | 4 | int n; |
| 5 | |
| 6 | const char * inc = @encode(int[]); |
Reid Kleckner | 2c5a38e | 2013-04-10 21:10:39 +0000 | [diff] [blame^] | 7 | // CHECK: ^i |
| 8 | // CHECK-NOT: ^i |
Anders Carlsson | 559a833 | 2009-02-22 01:38:57 +0000 | [diff] [blame] | 9 | const char * vla = @encode(int[n]); |
Reid Kleckner | 2c5a38e | 2013-04-10 21:10:39 +0000 | [diff] [blame^] | 10 | // CHECK: [0i] |
| 11 | // CHECK-NOT: [0i] |
Anders Carlsson | 559a833 | 2009-02-22 01:38:57 +0000 | [diff] [blame] | 12 | } |
Chris Lattner | eaf2bb8 | 2009-02-24 22:18:39 +0000 | [diff] [blame] | 13 | |
| 14 | // PR3648 |
| 15 | int a[sizeof(@encode(int)) == 2 ? 1 : -1]; // Type is char[2] |
Chris Lattner | dd8e006 | 2009-02-24 22:27:37 +0000 | [diff] [blame] | 16 | const char *B = @encode(int); |
Chris Lattner | eaf2bb8 | 2009-02-24 22:18:39 +0000 | [diff] [blame] | 17 | char (*c)[2] = &@encode(int); // @encode is an lvalue |
Chris Lattner | 79e079d | 2009-02-24 23:10:27 +0000 | [diff] [blame] | 18 | |
| 19 | char d[] = @encode(int); // infer size. |
| 20 | char e[1] = @encode(int); // truncate |
| 21 | char f[2] = @encode(int); // fits |
| 22 | char g[3] = @encode(int); // zero fill |
| 23 | |