www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1471] New: Linker error on template function. Error 42: Symbol Undefined ...

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1471

           Summary: Linker error on template function.  Error 42: Symbol
                    Undefined ...
           Product: D
           Version: 1.020
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: link-failure
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: gamerChad gmail.com


void explode(char[] foo)()
{
  int gremlins;
  char[] bar = foo[gremlins..$];
}

void main(){ explode!("BOOM"); }


The above program prints the following when compiled:

C:\dmd\bin\..\..\dm\bin\link.exe main,,,user32+kernel32/noi;
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

main.obj(main)
 Error 42: Symbol Undefined
_D4main27__T7explodeVG4aa4_424f4f4dZ7explodeFZv8__do
llark
--- errorlevel 1



This was tested with DMD 1.020 on Windows XP.


-- 
Sep 03 2007
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1471


kennytm gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kennytm gmail.com
            Version|1.020                       |D1 & D2



Still not fixed in D2.052 :)

-------------------------------------
void explode(string foo)() {
  int gremlins = 0;
  string bar = foo[gremlins .. $];
}

void main(){ explode!("BOOM")(); }
-------------------------------------
Undefined symbols:
  "_D1x27__T7explodeVAyaa4_424f4f4dZ7explodeFZv8__dollark", referenced from:
      _D1x27__T7explodeVAyaa4_424f4f4dZ7explodeFZv8__dollark$non_lazy_ptr in
x.o
     (maybe you meant:
_D1x27__T7explodeVAyaa4_424f4f4dZ7explodeFZv8__dollark$non_lazy_ptr)
ld: symbol(s) not found
collect2: ld returned 1 exit status
--- errorlevel 1
-------------------------------------

'_D1x27__T7explodeVAyaa4_424f4f4dZ7explodeFZv8__dollark' means 'void
x.explode!("BOOM").explode().uint __dollar'.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 08 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1471




Reduced test case for 1.068:

-----------------------------------
void main(){
    const string s = "BOOM";
    int gremlins = 0;
    string bar = s[gremlins .. $];
}
-----------------------------------
Undefined symbols:
  "_D1y4mainFZv8__dollark", referenced from:
      _D1y4mainFZv8__dollark$non_lazy_ptr in y.o
     (maybe you meant: _D1y4mainFZv8__dollark$non_lazy_ptr)
ld: symbol(s) not found
collect2: ld returned 1 exit status
--- errorlevel 1
-----------------------------------

The equivalent for 2.054:

-----------------------------------
void main(){
    enum string s = "BOOM";
    int gremlins = 0;
    string bar = s[gremlins .. $];
}
-----------------------------------

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 30 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1471


kennytm gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bearophile_hugs eml.cc



*** Issue 5062 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 30 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1471


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch
                 CC|                            |k.hara.pg gmail.com



D2 patch:
https://github.com/D-Programming-Language/dmd/pull/108

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 14 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1471


Walter Bright <bugzilla digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla digitalmars.com
         Resolution|                            |FIXED



15:44:48 PDT ---
https://github.com/D-Programming-Language/dmd/commit/be6a395ae8b36f2b62788ed00dddc502902c4c5f

https://github.com/D-Programming-Language/dmd/commit/49375940e312d17fc975ab2f028df99f3e5eda1b

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 20 2011
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1471




15:48:06 PDT ---
https://github.com/D-Programming-Language/dmd/commit/be6a395ae8b36f2b62788ed00dddc502902c4c5f

https://github.com/D-Programming-Language/dmd/commit/49375940e312d17fc975ab2f028df99f3e5eda1b

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 20 2011