xref: /llvm-project/clang/test/CodeGenObjC/ivar-base-as-invariant-load.m (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1 -emit-llvm  -triple x86_64-apple-darwin -x objective-c %s -o - | FileCheck %s
2
3@interface A {
4        struct {
5                unsigned char a : 1;
6                unsigned char b : 1;
7                unsigned char c : 1;
8        } _flags;
9}
10
11@end
12
13@implementation A
14
15- (id)init {
16        _flags.a = 1;
17        _flags.b = 1;
18        _flags.c = 1;
19
20        return self;
21}
22
23@end
24
25// CHECK: [[T1:%.*]] = load i64, ptr @"OBJC_IVAR_$_A._flags", align 8, !invariant.load ![[MD_NUM:[0-9]+]]
26// CHECK: [[T2:%.*]] = load i64, ptr @"OBJC_IVAR_$_A._flags", align 8, !invariant.load ![[MD_NUM]]
27// CHECK: [[T3:%.*]] = load i64, ptr @"OBJC_IVAR_$_A._flags", align 8, !invariant.load ![[MD_NUM]]
28//
29