/*
REQUIRED_ARGS: -betterC
RUN_OUTPUT:
---
init
init
main
fini
fini
---
*/

import core.stdc.stdio;

extern(C):

pragma(crt_constructor)
pragma(crt_destructor)
void ctor_dtor_1()
{
    __gshared bool initialized;
    puts(initialized ? "fini" : "init");
    initialized = true;
}

pragma(crt_constructor)
__gshared int var; // ignored for anything but functions

pragma(crt_constructor)
{
    version (all) void init()
    {
        puts("init");
    }
}

template fini()
{
    pragma(crt_destructor)
    void fini()
    {
        puts("fini");
    }
}

alias instantiate = fini!();

int main()
{
    puts("main");
    return 0;
}
