[Issue 16995] New: __traits(getUnittests) doesn't work with separate compilation
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Tue Dec 20 10:04:34 PST 2016
https://issues.dlang.org/show_bug.cgi?id=16995
Issue ID: 16995
Summary: __traits(getUnittests) doesn't work with separate
compilation
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: enhancement
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: atila.neves at gmail.com
foo.d:
-----
void main() {
import bar;
foreach(ut; __traits(getUnitTests, bar)) ut();
}
-----
bar.d:
-----
unittest { assert(1 == 2); }
-----
# compile all at once
dmd -unittest foo.d bar.d # fine
# compile separately
dmd -c -unittest foo.d
dmd -c -unittest bar.d
dmd foo.o bar.o
foo.o:foo.d:function _Dmain: error: undefined reference to
'_D3bar16__unittestL2_531FZv'
collect2: error: ld returned 1 exit status
--- errorlevel 1
objdump shows me that bar.o has a '_D3bar14__unittestL2_1FZv' symbol, which is
nearly, but not quite, what foo.o is trying to call.
--
More information about the Digitalmars-d-bugs
mailing list