xref: /aosp_15_r20/external/clang/test/CodeGen/2010-07-14-ref-off-end.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -emit-llvm -triple i386-apple-darwin -o - | FileCheck %s
2*67e74705SXin Li extern void abort();
3*67e74705SXin Li extern void exit(int);
4*67e74705SXin Li struct T
5*67e74705SXin Li {
6*67e74705SXin Li unsigned i:8;
7*67e74705SXin Li unsigned c:24;
8*67e74705SXin Li };
f(struct T t)9*67e74705SXin Li f(struct T t)
10*67e74705SXin Li {
11*67e74705SXin Li struct T s[1];
12*67e74705SXin Li s[0]=t;
13*67e74705SXin Li return(char)s->c;
14*67e74705SXin Li }
main()15*67e74705SXin Li main()
16*67e74705SXin Li {
17*67e74705SXin Li // CHECK:  getelementptr inbounds [1 x %struct.T], [1 x %struct.T]* %s, i32 0, i32 0
18*67e74705SXin Li // CHECK:  getelementptr inbounds [1 x %struct.T], [1 x %struct.T]* %s, i32 0, i32 0
19*67e74705SXin Li struct T t;
20*67e74705SXin Li t.i=0xff;
21*67e74705SXin Li t.c=0xffff11;
22*67e74705SXin Li if(f(t)!=0x11)abort();
23*67e74705SXin Li exit(0);
24*67e74705SXin Li }
25