https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103215
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >Does double post-increment `if (type-- == name_and_type || type-- == >name_and_type)` have defined behaviour? Yes as the || acts as a sequence point. My bet is there is a (bad) transformation going on that converts v-- == array to v == array-1, v-- and that is causing the warnings to show up. > I think error message is at least incorrectly worded. the warning is correct iif array-2 was used and that seems to be the problem here is that is not used directly but the compiler decides to create it (incorrectly).