Thread overview
[Issue 1471] New: Linker error on template function. Error 42: Symbol Undefined ...
Sep 04, 2007
d-bugmail
May 08, 2011
kennytm@gmail.com
Jun 30, 2011
kennytm@gmail.com
Jun 30, 2011
kennytm@gmail.com
Jul 14, 2011
Kenji Hara
Jul 20, 2011
Walter Bright
Jul 20, 2011
Walter Bright
September 04, 2007
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.


-- 

May 08, 2011
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


--- Comment #1 from kennytm@gmail.com 2011-05-08 01:09:21 PDT ---
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: -------
June 30, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=1471



--- Comment #2 from kennytm@gmail.com 2011-06-30 10:25:34 PDT ---
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: -------
June 30, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=1471


kennytm@gmail.com changed:

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


--- Comment #3 from kennytm@gmail.com 2011-06-30 10:25:49 PDT ---
*** 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: -------
July 14, 2011
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


--- Comment #4 from Kenji Hara <k.hara.pg@gmail.com> 2011-07-14 04:24:28 PDT ---
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: -------
July 20, 2011
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


--- Comment #5 from Walter Bright <bugzilla@digitalmars.com> 2011-07-20 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: -------
July 20, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=1471



--- Comment #6 from Walter Bright <bugzilla@digitalmars.com> 2011-07-20 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: -------