Thread overview
[Issue 16216] struct equality compares padding
Jun 29, 2016
ZombineDev
Feb 10
ag0aep6g
June 29, 2016
https://issues.dlang.org/show_bug.cgi?id=16216

ZombineDev <petar.p.kirov@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |petar.p.kirov@gmail.com

--
February 08
https://issues.dlang.org/show_bug.cgi?id=16216

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com

--- Comment #1 from Walter Bright <bugzilla@digitalmars.com> ---
PR: https://github.com/dlang/dmd/pull/9331

The PR does not affect the `is` comparisons. I'm not sure yet if it should.

--
February 09
https://issues.dlang.org/show_bug.cgi?id=16216

--- Comment #2 from Walter Bright <bugzilla@digitalmars.com> ---
Now fixed for the == and != case.

--
February 10
https://issues.dlang.org/show_bug.cgi?id=16216

--- Comment #3 from ag0aep6g <ag0aep6g@gmail.com> ---
(In reply to Walter Bright from comment #1)
> The PR does not affect the `is` comparisons. I'm not sure yet if it should.

I think we're good with regards to `is`. The spec says: "For struct objects [...], identity is defined as the bits in the operands being identical." The padding is part of "the bits", so including it in the comparison is correct.

I don't know why I thought `is` should behave differently. Maybe I had missed that sentence in the spec.


(In reply to Walter Bright from comment #2)
> Now fixed for the == and != case.

I'm not a fan of calling this "fixed" when it needs a special compiler switch.

--