[Issue 8997] New: template instances omit symbol that may be used in other modules

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Nov 11 10:16:39 PST 2012


http://d.puremagic.com/issues/show_bug.cgi?id=8997

           Summary: template instances omit symbol that may be used in
                    other modules
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: deadalnix at gmail.com


--- Comment #0 from deadalnix <deadalnix at gmail.com> 2012-11-11 10:16:37 PST ---
See cod below :

module linkfailclass;

class A {
    A[string] foobar;
}

module linkfailuse;

import linkfailclass;

void main() {
    auto a = new A();

    foreach(key; a.foobar.byKey()) {

    }
}

Then compile :

dmd -c linkfailclass.d 
dmd -c linkfailuse.d

dmd -oflinkfail linkfailclass.o linkfailuse.o 
linkfailuse.o: In function `_Dmain':
linkfailuse.d:(.text._Dmain+0x20): undefined reference to
`_D6object45__T16AssociativeArrayTAyaTC13linkfailclass1AZ16AssociativeArray5byKeyMFNdZS6object45__T16AssociativeArrayTAyaTC13linkfailclass1AZ16AssociativeArray5byKeyM6Result'
linkfailuse.d:(.text._Dmain+0x29): undefined reference to
`_D6object45__T16AssociativeArrayTAyaTC13linkfailclass1AZ16AssociativeArray5Range5emptyMxFNdZb'
linkfailuse.d:(.text._Dmain+0x36): undefined reference to
`_D6object45__T16AssociativeArrayTAyaTC13linkfailclass1AZ16AssociativeArray5byKeyMFNdZS6object45__T16AssociativeArrayTAyaTC13linkfailclass1AZ16AssociativeArray5byKeyM6Result6Result5frontMFNcNdZAya'
linkfailuse.d:(.text._Dmain+0x46): undefined reference to
`_D6object45__T16AssociativeArrayTAyaTC13linkfailclass1AZ16AssociativeArray5Range8popFrontMFZv'
collect2: error: ld returned 1 exit status
--- errorlevel 1

Template is instantiated in linkfailclass so linkfailuse assume it is in it.
But some members of the template are not instanciated because not used in
linkfailclass. linkfailuse assume they are.

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


More information about the Digitalmars-d-bugs mailing list