Summary: Module constructor is not called under some
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: critical
          Priority: P2
         Component: DMD

--- Comment #0 from Michal Minich <> 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.stdio;
import a;

extern (Windows)
int WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
    int result;

    void exceptionHandler (Throwable ex) { throw ex; }


    result = myWinMain();


    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:
------- You are receiving this mail because: -------

Reply via email to