On 3/8/18 1:56 PM, Markus wrote:
You are right.
$ dmd -c main.d
$ nm main.o | grep some
U _ZN4ns_a13some_functionEPN4ns_a7class_aE
$ nm lib.o | grep some
0000000000000000 T _ZN4ns_a13some_functionEPNS_7class_aE
But when i merge the main.d and other.d I get
$ nm main.o | grep some
U _ZN4ns_a13some_functionEPNS_7class_aE
I tested dmd (2.079.0), gdc and ldc2. All got the same result. Which
makes me think, that it's not a bug, but a "feature" :)
Ah interesting. What it looks like is that the symbol for the namespace
is considered different between the two files in D-land, but they have
the same name in C++-land. So it thinks it's not a back reference, but
really it should be.
-Steve