view tests/minicomplex/constructors.d @ 1506:76936858d1c6

Return `void*` from _d_allocclass so LLVM doesn't do weird things with it... This allows `-instcombine` followed by `-gvn` to do devirtualization, so add `-gvn` in strategic places in the default pass order.
author Frits van Bommel <fvbommel wxs.nl>
date Sat, 20 Jun 2009 11:39:13 +0200
parents 4ac97ec7c18e
children
line wrap: on
line source

module constructors;

import tango.io.Console;

class C
{
    this()
    {
        Cout("C()").newline;
    }
    this(char[] str)
    {
        Cout("C(")(str)(")").newline;
    }
}

class D : C
{
    this()
    {
        super("D");
        Cout("D()").newline;
    }
}

void main()
{
    auto c1 = new C();
    auto c2 = new C("C");
    auto d = new D();
}