[Issue 281] New: dmd generates the object code ld cannot link when	working with templates
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Wed Aug  9 15:34:44 PDT 2006
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=281
           Summary: dmd generates the object code ld cannot link when
                    working with templates
           Product: D
           Version: 0.163
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: link-failure
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: tbolsh at gmail.com
try to compile the following code with dmd:
import std.boxer;
import std.stdio;
class Test{
    char []txt;
    this(char []txt) { this.txt = txt; }
    char []toString(){ return txt; }
}
void main(char [][]args){
    Test t1 = new Test("test");
    Box  tb = box( t1 );
    Test t2 = unbox!(Test) (tb);
}
It compiles fine, but ld generates following errors:
[tbolsh]$ dmd TestBoxer
gcc TestBoxer.o -o TestBoxer -m32 -lphobos -lpthread -lm
TestBoxer.o(.gnu.linkonce.t_D3std5boxer27__T5unboxTC9TestBoxer4TestZ5unboxFS3std5boxer3BoxZC9TestBoxer4Test+0x1a):
In function
`_D3std5boxer27__T5unboxTC9TestBoxer4TestZ5unboxFS3std5boxer3BoxZC9TestBoxer4Test':
TestBoxer.d: undefined reference to `_assert_3std5boxer'
collect2: ld returned 1 exit status
--- errorlevel 1
GDC compiles and links such a code fine.
-- 
    
    
More information about the Digitalmars-d-bugs
mailing list