https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81705
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I don't see this with g++-7 which has (void) (a = (-516151698 - NON_LVALUE_EXPR <var_4>) - -NON_LVALUE_EXPR <var_14>) trunks produces (void) (a = -516151698 - (-NON_LVALUE_EXPR <var_14> + NON_LVALUE_EXPR <var_4>))