[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