Thread overview
[Issue 16216] struct equality compares padding
Jun 29, 2016
ZombineDev
Feb 08, 2019
Walter Bright
Feb 09, 2019
Walter Bright
Feb 10, 2019
ag0aep6g
Dec 17, 2022
Iain Buclaw
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, 2019
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, 2019
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, 2019
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.

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=16216

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P3

--