[Bug c/108439] incorrect optimization with -O2, -O3, -Os
georgmueller at gmx dot net
gcc-bugzilla@gcc.gnu.org
Tue Jan 17 21:44:36 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108439
--- Comment #5 from Georg Müller <georgmueller at gmx dot net> ---
(In reply to Andrew Pinski from comment #4)
> (In reply to Georg Müller from comment #1)
> > Also, this compiler warning and execution error is removed by compiling with
> > -fno-strict-aliasing, but again, this does not look right.
>
> Why do you think that is not correct? The aliasing violation causing
> undefined behavior is obvious from the stores and loads that happen from the
> source.
main() only works with its own lb_key array. It is only modified before giving
it to crap8() - it does not handle the internals of the hashing function.
crap8() takes the key as a void pointer - no assumptions about what it gets and
only converts void* to uint32_t*, what should be fine, or?
Why is there a warning of lb_key not being initialized in the second example,
even though its only member gets initialized twice? Via the same reference...
More information about the Gcc-bugs
mailing list