
On 6/1/2015 3:12 PM, Andrey Semashev wrote:
On Monday 01 June 2015 11:23:36 Edward Diener wrote:
On 6/1/2015 10:48 AM, Andrey Semashev wrote:
My understanding is that MinGW (http://mingw.org/) was discontinued in favor of MinGW64 (http://mingw-w64.org/). Not sure if we should support it.
What do you mean by "discontinued" ?
I mean it's not being released for quite some time. The last stable compiler release I can see was in 2013. Mailing lists[1][2] activity is rather low. Combined with the fact that the compiler still doesn't support 64-bit targets, this is a strong indication to me that the project is pretty much dead.
There is still activity on those mailing lists and I have seen nothing on the mingw site that suggests they have come to an end. If clang builds supported mingw64 then I agree that I would not bother with setting up mingw, but since clang/mingw64 is hardly a viable option I still maintain mingw for testing. I quoted you with what one of the clang developers said about clang/mingw64. I have not made a further issue with him or anyone else on the clang mailing list about it.
What does the C++ standard say about the extern "C" declarations duplicating the same name as regular declarations but different types. Is it an ODR violation ? Maybe that is what the clang problem is about although gcc does not feel it is a problem seeing the exact same preprocessed output.
I could only find 7.5/6:
...Two declarations for a function with C language linkage with the same function name (ignoring the namespace names that qualify it) that appear in different namespace scopes refer to the same function....
It doesn't say anything about argument types. ODR also doesn't apply here since we're talking about the function declaration, not its definition.
OK, so just declaring a function with the same name but different signature doesn't mean a compiler error. But when we invoke the function with a signature that matches one of the declarations does the C++ standard say it is an error because another declaration with the same name but a different signature exists ? Evidently clang thinks it is an error but gcc does not.
[1] http://dir.gmane.org/gmane.comp.gnu.mingw.devel [2] http://dir.gmane.org/gmane.comp.gnu.mingw.user