← Back to index
|
Original Bugzilla link
Bug 19406 – -allinst -unittest link failure when importing std.path
Status
RESOLVED
Resolution
WORKSFORME
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2018-11-16T10:47:57Z
Last change time
2022-03-24T09:51:50Z
Keywords
link-failure
Assigned to
No Owner
Creator
Vladimir Panteleev
Comments
Comment #0
by dlang-bugzilla — 2018-11-16T10:47:57Z
//// test.d //// import std.path; //////////////// $ dmd -main -unittest -allinst test.d 2>&1 | ddemangle /usr/sbin/ld: test.o: in function `pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char)': __main.d:(.text.pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char)[pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char)]+0x14): undefined reference to `pure nothrow @nogc @safe void std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S.put(char)' /usr/sbin/ld: test.o: in function `pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref char)': __main.d:(.text.pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref char)[pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, char).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref char)]+0x14): undefined reference to `pure nothrow @nogc @safe void std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S.put(char)' /usr/sbin/ld: test.o: in function `pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, immutable(char)).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref immutable(char))': __main.d:(.text.pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, immutable(char)).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref immutable(char))[pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, immutable(char)).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref immutable(char))]+0x14): undefined reference to `pure nothrow @nogc @safe void std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S.put(char)' /usr/sbin/ld: test.o: in function `pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, const(char)).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref const(char))': __main.d:(.text.pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, const(char)).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref const(char))[pure nothrow @nogc @safe void std.range.primitives.doPut!(std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, const(char)).doPut(ref std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S, ref const(char))]+0x14): undefined reference to `pure nothrow @nogc @safe void std.format.hasToString!(std.uni.InversionList!(std.uni.GcPolicy).InversionList, char).__lambda1().S.put(char)' collect2: error: ld returned 1 exit status Error: linker exited with status 1 Looks like a DMD bug, bug started happening with std.path since
https://github.com/dlang/phobos/pull/5991
.
Comment #1
by moonlightsentinel — 2022-03-24T09:51:50Z
No linker errors with current master (927358071f6f71652954cb9719cbd5f52075e332)