https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91678
--- Comment #9 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I'm not sure yet -- I remember issues I'd seen with the patch, but those issues were somehow resolved, so the maybe_lvalue_p bit was all that was needed on trunk. I need to do a regtest/bootstrap on 9 to see if there's anything broken by this change. If not, then this should be fine to backport.