blob: d28cae29edc1bc4586bcd1adec78ac0e11faedac [file] [log] [blame]
/*
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;
}