> Certainly better. But I fail to see why a different location would be > better than the original here. I assume all tokens have a correct initial > location. Then why is for example for int i; in (int) i the location of > the conversion a better location than the one of i in the folded result?
I don't care either way. OK pending tests? PR bootstrap/41451 * fold-const.c (fold_binary_loc): Do not call protected_set_expr_location. Index: fold-const.c =================================================================== --- fold-const.c (revision 153549) +++ fold-const.c (working copy) @@ -10134,7 +10134,6 @@ fold_binary_loc (location_t loc, tem = fold_build2_loc (loc, code, type, fold_convert_loc (loc, TREE_TYPE (op0), TREE_OPERAND (arg0, 1)), op1); - protected_set_expr_location (tem, loc); tem = build2 (COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0), tem); goto fold_binary_exit; } @@ -10144,7 +10143,6 @@ fold_binary_loc (location_t loc, tem = fold_build2_loc (loc, code, type, op0, fold_convert_loc (loc, TREE_TYPE (op1), TREE_OPERAND (arg1, 1))); - protected_set_expr_location (tem, loc); tem = build2 (COMPOUND_EXPR, type, TREE_OPERAND (arg1, 0), tem); goto fold_binary_exit; }