bpo-18374: fix wrong col_offset of some ast.BinOp instances (GH-14607)
Nested BinOp instances (e.g. a+b+c) had a wrong col_offset for the
second BinOp (e.g. 2 instead of 0 in the example). Fix it by using the
correct st node to copy the line and col_offset from in ast.c.
(cherry picked from commit 110a47c4f42cf4db88edc1876899fff8f05190fb)
Co-authored-by: Carl Friedrich Bolz-Tereick <cfbolz@gmx.de>
diff --git a/Python/ast.c b/Python/ast.c
index 2a59415..317a42b 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -2645,7 +2645,7 @@
return NULL;
tmp_result = BinOp(result, newoperator, tmp,
- LINENO(next_oper), next_oper->n_col_offset,
+ LINENO(n), n->n_col_offset,
CHILD(n, i * 2 + 2)->n_end_lineno,
CHILD(n, i * 2 + 2)->n_end_col_offset,
c->c_arena);