1// RUN: %clang_cc1 %s -emit-llvm -O0 -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