When compiling the following test case:
struct Vector {
union { float x; float y; }
const static Vector zero = { x : 0, y : 0 };
}
struct HBoxLayout {
Vector padding = Vector.zero;
}
I get:
ldc: /home/robert/d/comp/ldc/ir/irstruct.cpp:201: llvm::Constant* IrStruct::createStructDefaultInitializer(): Assertion `0 && "default initializer type does not match the default struct type"' failed.
0 ldc 0x0000000000cec2d1
1 libc.so.6 0x00007fdab6d95150
2 libc.so.6 0x00007fdab6d950c5 gsignal + 53
3 libc.so.6 0x00007fdab6d965e3 abort + 387
4 libc.so.6 0x00007fdab6d8e0e9 __assert_fail + 233
5 ldc 0x0000000000671fc0 IrStruct::createStructDefaultInitializer() + 944
6 ldc 0x000000000067204d IrStruct::getDefaultInit() + 61
7 ldc 0x000000000063f048 DtoResolveStruct(StructDeclaration*) + 360
8 ldc 0x000000000065df51 Module::genLLVMModule(Ir*) + 609
9 ldc 0x000000000062315b main + 4891
10 libc.so.6 0x00007fdab6d81546 __libc_start_main + 230
11 ldc 0x0000000000546d69
On linux x86-64, ldc version:
LLVM D Compiler rev. 1248:01909bd1132c (2009-04-21 17:54 +0200)
based on DMD v1.042 and llvm 2.5 (2009-03-03 04:36:03 +0000)