1a3f55b026fc24db6a4e275a8e4110d071122b99dRafael Espindola// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
23883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// PR 4349
33883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
43883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherunion reg
53883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{
63883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    unsigned char b[2][2];
73883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    unsigned short w[2];
83883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    unsigned int d;
93883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher};
103883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct cpu
113883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{
123883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    union reg pc;
133883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher};
143883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherextern struct cpu cpu;
153883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct svar
163883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{
173883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    void *ptr;
183883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher};
193883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// CHECK: @svars1 = global [1 x %struct.svar] [%struct.svar { i8* bitcast (%struct.cpu* @cpu to i8*) }]
203883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct svar svars1[] =
213883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{
223883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    { &((cpu.pc).w[0]) }
233883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher};
243883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// CHECK: @svars2 = global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8* bitcast (%struct.cpu* @cpu to i8*), i64 1) }]
253883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct svar svars2[] =
263883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{
273883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    { &((cpu.pc).b[0][1]) }
283883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher};
293883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// CHECK: @svars3 = global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8* bitcast (%struct.cpu* @cpu to i8*), i64 2) }]
303883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct svar svars3[] =
313883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{
323883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    { &((cpu.pc).w[1]) }
333883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher};
343883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// CHECK: @svars4 = global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8* bitcast (%struct.cpu* @cpu to i8*), i64 3) }]
353883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct svar svars4[] =
363883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher{
373883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher    { &((cpu.pc).b[1][1]) }
383883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher};
39