Thread overview
[Issue 18049] dmd -unittest against a library not compiled with -unittest gives undefined symbols
Dec 09, 2017
Timothee Cour
Dec 09, 2017
Timothee Cour
Dec 09, 2017
Timothee Cour
Dec 09, 2017
Timothee Cour
Jan 05, 2018
Rainer Schuetze
Jan 05, 2018
Timothee Cour
Jan 05, 2018
Rainer Schuetze
December 09, 2017
https://issues.dlang.org/show_bug.cgi?id=18049

Timothee Cour <timothee.cour2@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |timothee.cour2@gmail.com

--- Comment #1 from Timothee Cour <timothee.cour2@gmail.com> ---
demangled error:

echo _D3fun__T1ATtZQf8opEqualsMxFNaNbNiNfSQBj__TQBiTtZQBoZb|ddemangle
const pure nothrow @nogc @safe bool fun.A!(ushort).A.opEquals(fun.A!(ushort).A)

echo _D3fun__T1ATtZQf11__xopEqualsFKxSQBf__TQBeTtZQBkKxQsZb|ddemangle
bool fun.A!(ushort).A.__xopEquals(ref const(fun.A!(ushort).A), ref
const(fun.A!(ushort).A))

--
December 09, 2017
https://issues.dlang.org/show_bug.cgi?id=18049

Timothee Cour <timothee.cour2@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |johannespfau@gmail.com

--- Comment #2 from Timothee Cour <timothee.cour2@gmail.com> ---
*** Issue 16477 has been marked as a duplicate of this issue. ***

--
December 09, 2017
https://issues.dlang.org/show_bug.cgi?id=18049

--- Comment #3 from Timothee Cour <timothee.cour2@gmail.com> ---
same error whether we compile as .a, .dylib, or .o

--
December 09, 2017
https://issues.dlang.org/show_bug.cgi?id=18049

--- Comment #4 from Timothee Cour <timothee.cour2@gmail.com> ---
likewise with ldc

--
January 05, 2018
https://issues.dlang.org/show_bug.cgi?id=18049

Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |r.sagitario@gmx.de

--- Comment #5 from Rainer Schuetze <r.sagitario@gmx.de> ---
That's a use case where the dreaded -allinst was added for: seperate compilation with different version, debug or unittest settings. In that case the template emission optimization fails to work because it assumes that the template is already emitted.

It's a bit strange that the optimization does not also avoid generating any code for the unittests, though.

--
January 05, 2018
https://issues.dlang.org/show_bug.cgi?id=18049

--- Comment #6 from Timothee Cour <timothee.cour2@gmail.com> ---
confirmed that adding -allinst works (both with dmd and ldc), but indeed, this
should be fixed.

question: what are downsides of -allinst?

--
January 05, 2018
https://issues.dlang.org/show_bug.cgi?id=18049

--- Comment #7 from Rainer Schuetze <r.sagitario@gmx.de> ---
downsides are slower compilation and bloated object files. Should not make a difference in the size of the executable.

--