Re: Ldc vs dmd vs gdc

2014-12-26 Thread Iain Buclaw via Digitalmars-d
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

2014-12-26 Thread Rikki Cattermole via Digitalmars-d

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

2014-12-26 Thread Rikki Cattermole via Digitalmars-d

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

2014-12-26 Thread Iain Buclaw via Digitalmars-d
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

2014-12-25 Thread Rikki Cattermole via Digitalmars-d
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