bpo-39031: Include elif keyword when producing lineno/col-offset info for if_stmt (GH-17582)



When parsing an "elif" node, lineno and col_offset of the node now point to the "elif" keyword and not to its condition, making it consistent with the "if" node.


https://bugs.python.org/issue39031



Automerge-Triggered-By: @pablogsal
diff --git a/Python/ast.c b/Python/ast.c
index 417b347..c450b87 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -4076,8 +4076,8 @@
             }
             asdl_seq_SET(newobj, 0,
                          If(expression, suite_seq, orelse,
-                            LINENO(CHILD(n, off)),
-                            CHILD(n, off)->n_col_offset,
+                            LINENO(CHILD(n, off - 1)),
+                            CHILD(n, off - 1)->n_col_offset,
                             end_lineno, end_col_offset, c->c_arena));
             orelse = newobj;
         }