view tests/mini/nested6.d @ 1210:3d4581761b4c

Add some alignment info where LLVM might otherwise be more pessimistic. In particular, %.nest_arg is always aligned even though it's bitcast from i8*. Pointers in vtables are also guaranteed to be stored at aligned addresses.
author Frits van Bommel <fvbommel wxs.nl>
date Sun, 12 Apr 2009 21:56:43 +0200
parents a34078905d01
children
line wrap: on
line source

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

void main()
{
    int i = 42;

    printf("main() %d\n", i++);

    class C
    {
        void func()
        {
            printf("C.func() %d\n", i++);

            class C2
            {
                void func2()
                {
                    printf("C2.func2() %d\n", i++);
                }
            }

            auto c2 = new C2;
            c2.func2();
        }
    }

    auto c = new C;
    c.func();
    
    assert(i == 45);
}