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

--- Comment #6 from Matthias Kretz <kretz at kde dot org> ---
Regarding gcc.dg/tree-ssa/ssa-pre-30.c

I'd argue that for `bar`, GCC may assume b == 0, because otherwise f would be
read both via int and float pointer, which is UB. So bar can be optimized to

`foo` shows a case I forgot in my "General rule". Pointers to integers that
only differ in signedness can do aliasing loads without UB and thus can't
trigger the optimization. And all the other aliasing exceptions listed in
http://eel.is/c++draft/basic.lval#11.

Reply via email to