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

--- Comment #18 from Yuxuan Shui <yshuiv7 at gmail dot com> ---
(In reply to Andrew Pinski from comment #17)
> (In reply to Yuxuan Shui from comment #16)
> > ...
> 
> So -fno-strict-overflow does -fno-wrapv-pointer so we can assume pointer
> arithmetic wraps now and then `a+1` could in theory wrap to nullptr.

hmm, but why does that make the null check that previously was not removable,
removable?

also another observation, if I change `struct obj *dso` to `int *dso`, and
`&dso->i` to `&dso[1]`, then the null check will be preserved. despite this
code still being undefined?

Reply via email to