[Issue 14043] New: Undefined reference error when compiling some functions with -inline
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Sun Jan 25 07:34:40 PST 2015
    
    
  
https://issues.dlang.org/show_bug.cgi?id=14043
          Issue ID: 14043
           Summary: Undefined reference error when compiling some
                    functions with -inline
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: DMD
          Assignee: nobody at puremagic.com
          Reporter: GenericNPC at gmail.com
When I try to call to std.stdio.File.rawRead with anything other than ubyte[]
and compile with -inline, dmd complains about undefined reference to
std.exception.errnoEnforce:
$ cat example.d
import std.stdio;
void main() {
    byte[] buffer;
    File file;
    file.rawRead(buffer);
}
$ dmd -inline example.d
example.o: In function `_D3std5stdio4File14__T7rawReadTgZ7rawReadMFAgZAg':
example.d:(.text._D3std5stdio4File14__T7rawReadTgZ7rawReadMFAgZAg+0x17d):
undefined reference to
`_D3std9exception102__T12errnoEnforceTbVAyaa34_2f7573722f696e636c7564652f646c616e672f646d642f7374642f737464696f2e64Vmi717Z12errnoEnforceFNfbLAyaZb'
collect2: error: ld returned 1 exit status
--- errorlevel 1
Note that this only happens when I use the -inline flag and when the argument
to rawRead is *not* ubyte[]. I don't think the problem is in Phobos, but in dmd
that cannot instantiate templates when inlining templated functions.
I've experienced this problem on dmd 2.066 and 2.066.1
--
    
    
More information about the Digitalmars-d-bugs
mailing list