On Sun, Sep 16, 2018 at 10:35:28PM -0700, Bin Meng wrote: > The -fstrict-aliasing option is implicitly enabled at levels -O2, > -O3, -Os by GCC. This option allows the compiler to assume the > strictest aliasing rules applicable to the language being compiled. > For example, the practice of reading from a different union member > than the one most recently written to (called "type-punning") is > common. In this case, "type-punning" only works if the memory is > accessed through the union type, but might not work by taking the > address, casting the resulting pointer and dereferencing the result, > which is an undefined behavior per the "strict aliasing rules". > > GCC's -Wstrict-aliasing (included in -Wall) option does not catch > all cases, but does attempt to catch the more common pitfalls. So > there are cases that GCC does not report but the codes are violating > the "strict aliasing rules". > > Given lots of codes that may be written to rely on "type-punning", > and Linux kernel disables it by -fno-strict-aliasing globally, since > U-Boot currently does this on nds32/riscv/x86 builds only, extend > this for all architecture builds. > > Signed-off-by: Bin Meng <bmeng...@gmail.com> > Reviewed-by: Tom Rini <tr...@konsulko.com> > Reviewed-by: Simon Glass <s...@chromium.org>
Applied to u-boot/master, thanks! -- Tom
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot