I know that extern(C) functions cannot be legally overloaded, but not issuing an error in the following situation seems wrong / a bug: extern(C) void foo(int); extern(C) void foo() {} void main() { foo(42); }