xref: /llvm-project/clang/test/CodeGenObjC/ivar-layout-flexible-array.m (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1 -triple x86_64-apple-darwin -Wno-objc-root-class -fobjc-arc -emit-llvm -o - %s | FileCheck %s
2
3@interface FlexibleArrayMember {
4  char flexible_array[][4][2];
5}
6@end
7@implementation FlexibleArrayMember
8@end
9// CHECK: @OBJC_METH_VAR_NAME_{{.*}} = private unnamed_addr constant {{.*}} c"flexible_array\00"
10// CHECK-NEXT: @OBJC_METH_VAR_TYPE_{{.*}} = private unnamed_addr constant {{.*}} c"^[4[2c]]\00"
11
12
13typedef char FlexibleArray[];
14
15struct Packet {
16  int size;
17  FlexibleArray data;
18};
19
20@interface VariableSizeIvar {
21  struct Packet flexible_struct;
22}
23@end
24@implementation VariableSizeIvar
25@end
26// CHECK: @OBJC_METH_VAR_NAME_{{.*}} = private unnamed_addr constant {{.*}} c"flexible_struct\00"
27// CHECK-NEXT: @OBJC_METH_VAR_TYPE_{{.*}} = private unnamed_addr constant {{.*}} c"{Packet=\22size\22i\22data\22[0c]}\00"
28