[PATCH 06/11] Sptr: avoided potentially undefined behaviour.
alx.manpages at gmail.com
Thu Jun 16 15:32:22 UTC 2022
Hi Andrew, and Max,
On 6/16/22 17:03, Andrew Clayton wrote:
> On Thu, 16 Jun 2022 13:35:12 +0300
> Max Romanov <max.romanov at gmail.com> wrote:
> Thanks for the review!
>> This patch is useless. Please try to understand the structure of sptr_t before made such changes.
> Yes, that union is a bit of a head scratcher! ;)
>> How extra assignment to temporary variable may change undefined behavior to defined?
> The idea was to avoid undefined memory ordering.
Hmmm, AFAIR, `u.a = u.b + 1;` is fine, since the = creates a sequence
point, isn't it?
The only possible problem would be if the union hadn't been initialized,
but that's a completely different story, and this wouldn't fix it :)
More information about the unit