1// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
2// PR 4349
3
4union reg
5{
6    unsigned char b[2][2];
7    unsigned short w[2];
8    unsigned int d;
9};
10struct cpu
11{
12    union reg pc;
13};
14extern struct cpu cpu;
15struct svar
16{
17    void *ptr;
18};
19// CHECK: @svars1 = global [1 x %struct.svar] [%struct.svar { i8* bitcast (%struct.cpu* @cpu to i8*) }]
20struct svar svars1[] =
21{
22    { &((cpu.pc).w[0]) }
23};
24// CHECK: @svars2 = global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8* bitcast (%struct.cpu* @cpu to i8*), i64 1) }]
25struct svar svars2[] =
26{
27    { &((cpu.pc).b[0][1]) }
28};
29// CHECK: @svars3 = global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8* bitcast (%struct.cpu* @cpu to i8*), i64 2) }]
30struct svar svars3[] =
31{
32    { &((cpu.pc).w[1]) }
33};
34// CHECK: @svars4 = global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8* bitcast (%struct.cpu* @cpu to i8*), i64 3) }]
35struct svar svars4[] =
36{
37    { &((cpu.pc).b[1][1]) }
38};
39