Apologies for another question so short after the previous one.

tempmix.d:

mixin template Foo()
{
    extern(C) void foo() {}
}

mixin Foo!();

extern(C) void bar() {}


$dmd -c tempmix.d
$nm tempmix.o
0000000000000000 t
0000000000000000 T bar
0000000000000000 D _D7tempmix12__ModuleInfoZ
0000000000000000 T _D7tempmix15__unittest_failFiZv
0000000000000000 T _D7tempmix7__arrayZ
0000000000000000 T _D7tempmix8__assertFiZv
0000000000000000 W _D7tempmix8__T3FooZ3fooUZv
                 U _d_array_bounds
                 U _d_assertm
                 w _d_dso_registry
                 U _Dmodule_ref
                 U _d_unittestm

foo gets mangled D-style, bar is left bare. Is this deliberate? I was under the impression that they should both be left bare.

I tried moving the extern(C) around to various other places, including extern(C): at the top of the file. No success.

Reply via email to