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