xref: /llvm-project/clang/test/CodeGenObjC/encode-test-3.m (revision e805b77107c8a26ad129fb2a46cdec01c90628be)
1// RUN: %clang_cc1 -triple=i686-apple-darwin9 -emit-llvm -o - %s | FileCheck %s
2// RUN: %clang_cc1 -triple=i686-apple-darwin9 -emit-llvm -o - %s -fexperimental-new-constant-interpreter | FileCheck %s
3
4int main(void) {
5  int n;
6
7  const char * inc = @encode(int[]);
8// CHECK: ^i
9// CHECK-NOT: ^i
10  const char * vla = @encode(int[n]);
11// CHECK: [0i]
12// CHECK-NOT: [0i]
13}
14
15// PR3648
16int a[sizeof(@encode(int)) == 2 ? 1 : -1]; // Type is char[2]
17const char *B = @encode(int);
18char (*c)[2] = &@encode(int); // @encode is an lvalue
19
20char d[] = @encode(int);   // infer size.
21char e[1] = @encode(int);  // truncate
22char f[2] = @encode(int);  // fits
23char g[3] = @encode(int);  // zero fill
24
25