https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124427

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This code has aliasing violations in it.
The uninitialized happens due to the undefined code due to the alias
violations.

I don't see -fno-strict-aliasing being used either.

__be64 be_packed[VPHN_REGISTER_COUNT];
const __be16 *field = (const __be16 *) be_packed;
...
for (i = 0; i < VPHN_REGISTER_COUNT; i++)
                be_packed[i] = cpu_to_be64(packed[i]);
...

u16 new = be16_to_cpup(field++);

But that is a read via be16 while the writes were via be64.

Reply via email to