[Issue 13172] optimize and rawread cause symbol undefined errors

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Jul 28 07:15:42 PDT 2014


https://issues.dlang.org/show_bug.cgi?id=13172

Ivan Kazmenko <gassa at mail.ru> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gassa at mail.ru

--- Comment #4 from Ivan Kazmenko <gassa at mail.ru> ---
I got that bug, too.

I have a small family of examples here.

-----example1.d:OK-----
import std.stdio;
void main () {
    ubyte [256] buf;
    stdin.rawRead (buf);
}
-----

-----example2.d:Fails with -inline-----
import std.stdio;
void main () {
    ushort [256] buf; // same with uint
    stdin.rawRead (buf);
}
-----

Checked with DMD 2.064.2, DMD 2.065.0 and DMD 2.066-0-b6, the results are
roughly the same.

Example 1 is OK.

In example 2, certain optimizations lead to linker errors.  To compile
successfully, just run "dmd <file>.d". For versions 2.064 and 2.066, just
adding "-inline" causes a linker error. For 2.065, the error requires the full
"-release -inline -noboundscheck" to be reproduced locally.

-----With "-m32" (OPTLINK):-----
OPTLINK (R) for Win32  Release 8.00.15
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
example2.obj(example2) 
 Error 42: Symbol Undefined
_D3std9exception140__T12errnoEnforceTbVAyaa53_433a5c546f6f6c735c646d645c77696e646f77735c62696e5cE611F934D2BE6B410FCD651C953DEFB1
--- errorlevel 1
-----

-----With "-m64" (MS VS 12.0 linker):-----
example2.obj : error LNK2019: unresolved external symbol
_D3std9exception140__T12errnoEnforceTbVAyaa53_433a5c546f6f6c735c646d645c77696e646f77735c62696e5c2e2e5c2e2e5c7372635c70686f626f735c7374645c737464696f2e64Vmi717Z12errnoEnforceFNfbLAyaZb
referenced in function _D3std5stdio4File14__T7rawReadTtZ7rawReadMFAtZAt
example2.exe : fatal error LNK1120: 1 unresolved externals
--- errorlevel 1120
-----

--


More information about the Digitalmars-d-bugs mailing list