view run/mini/nested8.d @ 1630:d0efa3ae5522 default tip

run/mini/naked_asm5: New x86_64 ABI passes the arguments in reverse order.
author David Nadlinger <code@klickverbot.at>
date Sat, 23 Apr 2011 22:57:32 +0200
parents c6ef09dfba4d
children
line wrap: on
line source

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

void main()
{
    int i = 1;
    void func()
    {
        printf("func()\n");
        i++;
        void func2()
        {
            printf(" func2()\n");
            int j = i + 1;
            void func3()
            {
                printf("  func3()\n");
                j++;
                printf("  done = %d\n", j);
            }
            func3();
            i = j;
            printf(" done = %d\n", j);
        }
        func2();
        printf("done\n");
    }
    func();
    printf("i == %d\n", i);
    assert(i == 4);
}