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