view tests/mini/classes5.d @ 1359:34f2fd925de3

Intrinsics shouldn't see struct padding, so use a special TargetABI for them that removes it. This unbreaks the `llvm_*_with_overflow` intrinsics.
author Frits van Bommel <fvbommel wxs.nl>
date Sat, 16 May 2009 13:06:49 +0200
parents 1bb99290e03a
children
line wrap: on
line source

module classes5;
extern(C) int printf(char*, ...);

struct S
{
    long l;
}

class C
{
    C c;
    S s;
}

void main()
{
    C c = new C;
    long* lp = void;
    {c.s.l = 64;}
    {assert(c.s.l == 64);}
    {lp = &c.s.l;}
    {assert(*lp == 64);}
    printf("classes5 success\n");
}