https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113514
--- Comment #3 from Bill Wendling <isanbard at gmail dot com> --- (In reply to Andrew Pinski from comment #1) > The answer is not really and it is complex. > Okay. It just seems counter-intuitive. > So I will note that clang/LLVM returns 48 for `f.bar[argc], 1` and 0 for > `,3`. Yeah. I'm trying to fix that, but the consensus is that returning the maximum value of the whole object (not sub-object) when the LSB is set is okay due to this in the documentation: > If there are multiple objects ptr can point to and all of them are known at > compile time, the returned number is the maximum of remaining byte counts in > those objects if type & 2 is 0 and minimum if nonzero. Note, I don't agree with that viewpoint.