[Issue 9571] New: linkage issue when using separate compilation and closures

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Feb 22 10:15:10 PST 2013


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

           Summary: linkage issue when using separate compilation and
                    closures
           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> 2013-02-22 10:15:07 PST ---
a.d :

import std.array;

void main() {
    import b;
    foo(new A);
}

b.d :
module b;

class C {
}

class A {
    C[] cs;
}

import std.algorithm;
auto foo(A a) {
    auto b = new B;
    a.cs.map!((C c){ return b.visit(c); });
}

class B {
    C visit(C c) {
        return c;
    }
}

compilation :
dmd -op -odobj/a -c src/a.d -m64
dmd -op -odobj/b -c src/b.d -m64

dmd -ofbin/sdc `find obj/a obj/b -type f | grep '\.o$'` -m64

Error :
obj/a/src/a.o: In function
`_D1b3fooFC1b1AZv59__T9MapResultS35_D1b3foo12__lambda1196MFC1b1CZC1b1CTAC1b1CZ9MapResult4backMFNdZC1b1C':
src/a.d:(.text._D1b3fooFC1b1AZv59__T9MapResultS35_D1b3foo12__lambda1196MFC1b1CZC1b1CTAC1b1CZ9MapResult4backMFNdZC1b1C+0x64):
undefined reference to `_D1b3fooFC1b1AZv12__lambda1196MFC1b1CZC1b1C'
obj/a/src/a.o: In function
`_D1b3fooFC1b1AZv59__T9MapResultS35_D1b3foo12__lambda1196MFC1b1CZC1b1CTAC1b1CZ9MapResult5frontMFNdZC1b1C':
src/a.d:(.text._D1b3fooFC1b1AZv59__T9MapResultS35_D1b3foo12__lambda1196MFC1b1CZC1b1CTAC1b1CZ9MapResult5frontMFNdZC1b1C+0x64):
undefined reference to `_D1b3fooFC1b1AZv12__lambda1196MFC1b1CZC1b1C'
obj/a/src/a.o: In function
`_D1b3fooFC1b1AZv59__T9MapResultS35_D1b3foo12__lambda1196MFC1b1CZC1b1CTAC1b1CZ9MapResult7opIndexMFmZC1b1C':
src/a.d:(.text._D1b3fooFC1b1AZv59__T9MapResultS35_D1b3foo12__lambda1196MFC1b1CZC1b1CTAC1b1CZ9MapResult7opIndexMFmZC1b1C+0x77):
undefined reference to `_D1b3fooFC1b1AZv12__lambda1196MFC1b1CZC1b1C'

-- 
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