[Issue 8130] New: Memory corruption because without *.def file DMD compiles DLL with assumption `_tls_index = 0`

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon May 21 07:08:11 PDT 2012


http://d.puremagic.com/issues/show_bug.cgi?id=8130

           Summary: Memory corruption because without *.def file DMD
                    compiles DLL with assumption `_tls_index = 0`
           Product: D
           Version: D2
          Platform: All
        OS/Version: Windows
            Status: NEW
          Keywords: wrong-code
          Severity: critical
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: verylonglogin.reg at gmail.com


--- Comment #0 from Denis Shelomovskij <verylonglogin.reg at gmail.com> 2012-05-21 18:09:46 MSD ---
Also without *.def file exported `extern(C)` symbols are prefixed with `_` and
require this prefix when obtained with GetProcAddress.

DMD should ether reject compiling DLL without module definition file or tell
optling that output is a library.

If there are reasons not to change current behavior, this trap should be
mentioned on top of dll.html (preferable in red color) and all D IDE developers
should be notified about this issue and catch such case on IDE level.

-- 
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