[Issue 4622] New: Module constructor is not called under some circumstances
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Aug 11 11:27:24 PDT 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4622
Summary: Module constructor is not called under some
circumstances
Product: D
Version: D2
Platform: Other
OS/Version: Linux
Status: NEW
Severity: critical
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: michal.minich at gmail.com
--- Comment #0 from Michal Minich <michal.minich at gmail.com> 2010-08-11 11:27:21 PDT ---
Module constructor is not called when it is placed in imported module and
WinMain/custom runtime initialization is used (it does not happens when
ordinary "main" is used or when static this is in main module).
module hello;
import core.runtime;
import std.c.windows.windows;
import std.stdio;
import a;
extern (Windows)
int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
int result;
void exceptionHandler (Throwable ex) { throw ex; }
Runtime.initialize(&exceptionHandler);
result = myWinMain();
Runtime.terminate(&exceptionHandler);
return result;
}
int main ()
{
writeln (i1); // <-- ----- prints "1" wich is ok.
writeln (i2); // <-------- prints "0" wich is incorrect, should be "2".
return 1;
}
------------------------
module a;
int i1 = 1;
int i2;
static this () {
i2 = 2;
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list