On Friday, February 23, 2018 10:08:58 Mike Franklin via Digitalmars-d- announce wrote: > On Friday, 23 February 2018 at 09:18:33 UTC, Jacob Carlborg wrote: > > On 2018-02-19 11:49, Martin Nowak wrote: > >> Glad to announce the first beta for the 2.079.0 release, ♥ to > >> the 77 > >> contributors for this release. > > > > The following is a regression that breaks DWT: > > > > extern (C) void foo(int) { } > > extern (C) void foo(double) { } > > > > The above used to compile but now results in: > > > > main.d(2): Error: function main.foo(double) cannot be > > overloaded with another extern(C) function at main.d(1) > > > > Was reported before the beta was released [1]. > > > > [1] https://issues.dlang.org/show_bug.cgi?id=18385 > > Overloaded `extern(C)` functions has also been reported as a bug > at https://issues.dlang.org/show_bug.cgi?id=15217
Yeah, while I sympathize if this broken DWT, I don't see how this can actually work and have no idea how it every worked. You can't overload functions in C. That's why C++ and D name mangling adds type stuff to the name, but extern(C) tells the compiler to use C name mangling, so you lose that. - Jonathan M Davis