view tests/mini/asm5.d @ 955:8a70b4381369

Make sure debug info uses the right compilation units - in particular the current cu if a symbol is a template instance. Fixes #211.
author Christian Kamm <kamm incasoftware de>
date Sat, 14 Feb 2009 21:18:47 +0100
parents b2d27ddf8f45
children 855889b7b268
line wrap: on
line source

int foo()
{
    version(X86)
    {
      asm { mov EAX, 42; }
    } else version(X86_64)
    {
      asm { movq RAX, 42; }
    }
    else static assert(0, "todo");
}

ulong bar()
{
    version(X86)
    {
      asm { mov EAX, 0xFF; mov EDX, 0xAA; }
    } else version(X86_64)
    {
      asm { movq RAX, 0xFF; }
    }
    else static assert(0, "todo");
}

void main()
{
    long l = 1;
    l = 2;
    l = 4;
    l = 8;
    assert(foo() == 42);
    version(X86)
    {
        assert(bar() == 0x000000AA000000FF);
    } else version(X86_64)
    {
        assert(bar() == 0x00000000000000FF);
    }
}