[Issue 19406] New: -allinst -unittest link failure when importing std.path
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Nov 16 10:47:57 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=19406
Issue ID: 19406
Summary: -allinst -unittest link failure when importing
std.path
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Keywords: link-failure
Severity: regression
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: dlang-bugzilla at thecybershadow.net
//// 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 .
--
More information about the Digitalmars-d-bugs
mailing list