[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