]> git.llucax.com Git - software/druntime.git/blobdiff - src/compiler/dmd/dmain2.d
cover.d does not produce output
[software/druntime.git] / src / compiler / dmd / dmain2.d
index 1991bd9cae43d40aeb300190860cf92623d1866e..15c46d2f3946efea7d7747f3d5a159536bffaaee 100644 (file)
@@ -12,6 +12,7 @@ module rt.dmain2;
 
 private
 {
 
 private
 {
+    import memory;
     import util.console;
     import core.stdc.stddef;
     import core.stdc.stdlib;
     import util.console;
     import core.stdc.stddef;
     import core.stdc.stdlib;
@@ -48,15 +49,13 @@ extern (C) void thread_joinAll();
  */
 extern (C)
 {
  */
 extern (C)
 {
-    void* gc_getHandle();
-    void  gc_setHandle(void* p);
-    void  gc_clrHandle();
+    void* gc_getProxy();
+    void  gc_setProxy(void* p);
+    void  gc_clrProxy();
 
     alias void* function()      gcGetFn;
     alias void  function(void*) gcSetFn;
     alias void  function()      gcClrFn;
 
     alias void* function()      gcGetFn;
     alias void  function(void*) gcSetFn;
     alias void  function()      gcClrFn;
-    alias bool  function(ExceptionHandler dg = null) rtInitFn;
-    alias bool  function(ExceptionHandler dg = null) rtTermFn;
 }
 
 extern (C) void* rt_loadLibrary(in char[] name)
 }
 
 extern (C) void* rt_loadLibrary(in char[] name)
@@ -69,12 +68,9 @@ extern (C) void* rt_loadLibrary(in char[] name)
         void* ptr = LoadLibraryA(temp.ptr);
         if (ptr is null)
             return ptr;
         void* ptr = LoadLibraryA(temp.ptr);
         if (ptr is null)
             return ptr;
-        gcSetFn  gcSet = cast(gcSetFn) GetProcAddress(ptr, "_gc_setHandle");
-        rtInitFn rtInit = cast(rtInitFn) GetProcAddress(ptr, "_rt_init");
-        if (gcSet is null || rtInit is null)
-            return ptr;
-        gcSet(gc_getHandle());
-        rtInit();
+        gcSetFn gcSet = cast(gcSetFn) GetProcAddress(ptr, "gc_setProxy");
+        if (gcSet !is null)
+            gcSet(gc_getProxy());
         return ptr;
 
     }
         return ptr;
 
     }
@@ -84,18 +80,13 @@ extern (C) void* rt_loadLibrary(in char[] name)
     }
 }
 
     }
 }
 
-extern (C) void rt_unloadLibrary(void* ptr)
+extern (C) bool rt_unloadLibrary(void* ptr)
 {
     version (Windows)
     {
 {
     version (Windows)
     {
-        gcClrFn  gcClr  = cast(gcClrFn) GetProcAddress(ptr, "_gc_clrHandle");
-        rtTermFn rtTerm = cast(rtTermFn) GetProcAddress(ptr, "_rt_term");
-
-        if (gcClr !is null && rtTerm !is null)
-        {
-            rtTerm();
+        gcClrFn gcClr  = cast(gcClrFn) GetProcAddress(ptr, "gc_clrProxy");
+        if (gcClr !is null)
             gcClr();
             gcClr();
-        }
         return FreeLibrary(ptr) != 0;
     }
     else version (linux)
         return FreeLibrary(ptr) != 0;
     }
     else version (linux)
@@ -110,7 +101,7 @@ extern (C) void rt_unloadLibrary(void* ptr)
  */
 extern (C) void onAssertError(string file, size_t line);
 extern (C) void onAssertErrorMsg(string file, size_t line, string msg);
  */
 extern (C) void onAssertError(string file, size_t line);
 extern (C) void onAssertErrorMsg(string file, size_t line, string msg);
-extern (C) void onArrayBoundsError(string file, size_t line);
+extern (C) void onRangeError(string file, size_t line);
 extern (C) void onHiddenFuncError(Object o);
 extern (C) void onSwitchError(string file, size_t line);
 extern (C) bool runModuleUnitTests();
 extern (C) void onHiddenFuncError(Object o);
 extern (C) void onSwitchError(string file, size_t line);
 extern (C) bool runModuleUnitTests();
@@ -133,7 +124,7 @@ extern (C) static void _d_assert_msg(string msg, string file, uint line)
 
 extern (C) void _d_array_bounds(string file, uint line)
 {
 
 extern (C) void _d_array_bounds(string file, uint line)
 {
-    onArrayBoundsError(file, line);
+    onRangeError(file, line);
 }
 
 extern (C) void _d_switch_error(string file, uint line)
 }
 
 extern (C) void _d_switch_error(string file, uint line)
@@ -178,6 +169,7 @@ extern (C) bool rt_init(ExceptionHandler dg = null)
     try
     {
         gc_init();
     try
     {
         gc_init();
+        initStaticDataGC();
         version (Windows)
             _minit();
         _moduleCtor();
         version (Windows)
             _minit();
         _moduleCtor();
@@ -294,7 +286,7 @@ extern (C) int main(int argc, char **argv)
 
     bool trapExceptions = rt_trapExceptions;
 
 
     bool trapExceptions = rt_trapExceptions;
 
-    void tryExec(void delegate() dg)
+    void tryExec(scope void delegate() dg)
     {
 
         if (trapExceptions)
     {
 
         if (trapExceptions)
@@ -359,6 +351,7 @@ extern (C) int main(int argc, char **argv)
     void runAll()
     {
         gc_init();
     void runAll()
     {
         gc_init();
+        initStaticDataGC();
         version (Windows)
             _minit();
         _moduleCtor();
         version (Windows)
             _minit();
         _moduleCtor();