On 2016-02-26 13:45, Atila Neves wrote:
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.
What is the mangling when it succeeds. -- /Jacob Carlborg
