39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
|
// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
|
||
|
// PR 4349
|
||
|
|
||
|
union reg
|
||
|
{
|
||
|
unsigned char b[2][2];
|
||
|
unsigned short w[2];
|
||
|
unsigned int d;
|
||
|
};
|
||
|
struct cpu
|
||
|
{
|
||
|
union reg pc;
|
||
|
};
|
||
|
extern struct cpu cpu;
|
||
|
struct svar
|
||
|
{
|
||
|
void *ptr;
|
||
|
};
|
||
|
// CHECK: @svars1 = {{(dso_local )?}}global [1 x %struct.svar] [%struct.svar { i8* bitcast (%struct.cpu* @cpu to i8*) }]
|
||
|
struct svar svars1[] =
|
||
|
{
|
||
|
{ &((cpu.pc).w[0]) }
|
||
|
};
|
||
|
// CHECK: @svars2 = {{(dso_local )?}}global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8, i8* bitcast (%struct.cpu* @cpu to i8*), i64 1) }]
|
||
|
struct svar svars2[] =
|
||
|
{
|
||
|
{ &((cpu.pc).b[0][1]) }
|
||
|
};
|
||
|
// CHECK: @svars3 = {{(dso_local )?}}global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8, i8* bitcast (%struct.cpu* @cpu to i8*), i64 2) }]
|
||
|
struct svar svars3[] =
|
||
|
{
|
||
|
{ &((cpu.pc).w[1]) }
|
||
|
};
|
||
|
// CHECK: @svars4 = {{(dso_local )?}}global [1 x %struct.svar] [%struct.svar { i8* getelementptr (i8, i8* bitcast (%struct.cpu* @cpu to i8*), i64 3) }]
|
||
|
struct svar svars4[] =
|
||
|
{
|
||
|
{ &((cpu.pc).b[1][1]) }
|
||
|
};
|