Re: Ldc vs dmd vs gdc
On 26 Dec 2014 07:25, Rikki Cattermole via Digitalmars-d digitalmars-d@puremagic.com wrote: On Monday, 15 December 2014 at 08:25:16 UTC, Rikki Cattermole wrote: I found a little interesting difference between ldc, dmd and gdc today. Summarized in ldc it does not allow you to have multiple extern c'd function prototypes with different parameters but same mangling aka name. In dmd and gdc it compiles fine. I believe this is actually wrong. As c abi does not support overloading of functions, shouldn't the compilers at the very least report a warning of this? [0] https://github.com/nomad-software/x11/issues/6#issuecomment-66959937 [1] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1534 [2] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1554 Could really use an answer to this. Another person discovered this in the wild. http://forum.dlang.org/post/gpfxidqvrseuhxpnc...@forum.dlang.org I would raise a bug if there isn't already one. The frontend should at least disallow conflicting extern(C) prototypes.
Re: Ldc vs dmd vs gdc
On 26/12/2014 10:30 p.m., Iain Buclaw via Digitalmars-d wrote: On 26 Dec 2014 07:25, Rikki Cattermole via Digitalmars-d digitalmars-d@puremagic.com mailto:digitalmars-d@puremagic.com wrote: On Monday, 15 December 2014 at 08:25:16 UTC, Rikki Cattermole wrote: I found a little interesting difference between ldc, dmd and gdc today. Summarized in ldc it does not allow you to have multiple extern c'd function prototypes with different parameters but same mangling aka name. In dmd and gdc it compiles fine. I believe this is actually wrong. As c abi does not support overloading of functions, shouldn't the compilers at the very least report a warning of this? [0] https://github.com/nomad-software/x11/issues/6#issuecomment-66959937 [1] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1534 [2] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1554 Could really use an answer to this. Another person discovered this in the wild. http://forum.dlang.org/post/gpfxidqvrseuhxpnc...@forum.dlang.org I would raise a bug if there isn't already one. The frontend should at least disallow conflicting extern(C) prototypes. This is the answer I was looking for thank you. Just needed somebody to confirm.
Re: Ldc vs dmd vs gdc
On 26/12/2014 10:42 p.m., Rikki Cattermole wrote: On 26/12/2014 10:30 p.m., Iain Buclaw via Digitalmars-d wrote: On 26 Dec 2014 07:25, Rikki Cattermole via Digitalmars-d digitalmars-d@puremagic.com mailto:digitalmars-d@puremagic.com wrote: On Monday, 15 December 2014 at 08:25:16 UTC, Rikki Cattermole wrote: I found a little interesting difference between ldc, dmd and gdc today. Summarized in ldc it does not allow you to have multiple extern c'd function prototypes with different parameters but same mangling aka name. In dmd and gdc it compiles fine. I believe this is actually wrong. As c abi does not support overloading of functions, shouldn't the compilers at the very least report a warning of this? [0] https://github.com/nomad-software/x11/issues/6#issuecomment-66959937 [1] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1534 [2] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1554 Could really use an answer to this. Another person discovered this in the wild. http://forum.dlang.org/post/gpfxidqvrseuhxpnc...@forum.dlang.org I would raise a bug if there isn't already one. The frontend should at least disallow conflicting extern(C) prototypes. This is the answer I was looking for thank you. Just needed somebody to confirm. https://issues.dlang.org/show_bug.cgi?id=13896
Re: Ldc vs dmd vs gdc
On 26 Dec 2014 09:45, Rikki Cattermole via Digitalmars-d digitalmars-d@puremagic.com wrote: On 26/12/2014 10:30 p.m., Iain Buclaw via Digitalmars-d wrote: On 26 Dec 2014 07:25, Rikki Cattermole via Digitalmars-d digitalmars-d@puremagic.com mailto:digitalmars-d@puremagic.com wrote: On Monday, 15 December 2014 at 08:25:16 UTC, Rikki Cattermole wrote: I found a little interesting difference between ldc, dmd and gdc today. Summarized in ldc it does not allow you to have multiple extern c'd function prototypes with different parameters but same mangling aka name. In dmd and gdc it compiles fine. I believe this is actually wrong. As c abi does not support overloading of functions, shouldn't the compilers at the very least report a warning of this? [0] https://github.com/nomad-software/x11/issues/6#issuecomment-66959937 [1] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1534 [2] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1554 Could really use an answer to this. Another person discovered this in the wild. http://forum.dlang.org/post/gpfxidqvrseuhxpnc...@forum.dlang.org I would raise a bug if there isn't already one. The frontend should at least disallow conflicting extern(C) prototypes. This is the answer I was looking for thank you. Just needed somebody to confirm. You don't need confirmation to raise a bug. Just do it. There's no wrongs or rights here. Iain.
Re: Ldc vs dmd vs gdc
On Monday, 15 December 2014 at 08:25:16 UTC, Rikki Cattermole wrote: I found a little interesting difference between ldc, dmd and gdc today. Summarized in ldc it does not allow you to have multiple extern c'd function prototypes with different parameters but same mangling aka name. In dmd and gdc it compiles fine. I believe this is actually wrong. As c abi does not support overloading of functions, shouldn't the compilers at the very least report a warning of this? [0] https://github.com/nomad-software/x11/issues/6#issuecomment-66959937 [1] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1534 [2] https://github.com/nomad-software/x11/blob/160f5109cb9f09ab69f9a16c685c5a6b39179db6/source/x11/Xlib.d#L1554 Could really use an answer to this. Another person discovered this in the wild. http://forum.dlang.org/post/gpfxidqvrseuhxpnc...@forum.dlang.org