[Issue 18870] New: Link failure only with -allinst for code in isExpression
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri May 18 00:14:55 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=18870
Issue ID: 18870
Summary: Link failure only with -allinst for code in
isExpression
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: sarn at theartofmachinery.com
Hi, I'm using version 2.080. Here's a reduced version of some code I had a
problem with:
import std.datetime.date;
import std.stdio;
void main()
{
writef("%s", TimeOfDay());
}
It compiles and runs fine for me with no flags to dmd, but here's what happens
with -allinst:
$ dmd -allinst broken.d
broken.o: In function
`_D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STaZQDgFNaNbNiNfKQDmKaZv':
broken.d:(.text._D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STaZQDgFNaNbNiNfKQDmKaZv[_D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STaZQDgFNaNbNiNfKQDmKaZv]+0x14):
undefined reference to
`_D3std6format__T11hasToStringTSQBd8datetime4date9TimeOfDayTaZ9__lambda2MFZ1S3putMFNaNbNiNfaZv'
broken.o: In function
`_D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STaZQDgFNaNbNiNfKQDmaZv':
broken.d:(.text._D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STaZQDgFNaNbNiNfKQDmaZv[_D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STaZQDgFNaNbNiNfKQDmaZv]+0x14):
undefined reference to
`_D3std6format__T11hasToStringTSQBd8datetime4date9TimeOfDayTaZ9__lambda2MFZ1S3putMFNaNbNiNfaZv'
broken.o: In function
`_D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STxaZQDhFNaNbNiNfKQDnKxaZv':
broken.d:(.text._D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STxaZQDhFNaNbNiNfKQDnKxaZv[_D3std5range10primitives__T5doPutTSQBh6format__T11hasToStringTSQCj8datetime4date9TimeOfDayTaZ9__lambda2MFZ1STxaZQDhFNaNbNiNfKQDnKxaZv]+0x14):
undefined reference to
`_D3std6format__T11hasToStringTSQBd8datetime4date9TimeOfDayTaZ9__lambda2MFZ1S3putMFNaNbNiNfaZv'
collect2: error: ld returned 1 exit status
Error: linker exited with status 1
The missing symbol demangles to this:
pure nothrow @nogc @safe void
std.format.hasToString!(const(std.datetime.date.TimeOfDay),
char).__lambda2().S.put(char)
(That __lambda2 is from an isExpression, so it makes sense for it to be missing
from the object file.)
--
More information about the Digitalmars-d-bugs
mailing list