bpo-43244: Fix test_peg_generator for PyAST_Validate() (GH-24912)
test_peg_generator now defines _Py_TEST_PEGEN macro when building C
code to not call PyAST_Validate() in Parser/pegen.c. Moreover, it
defines Py_BUILD_CORE_MODULE macro to get access to the internal
C API.
Remove "global_ast_state" from Python-ast.c when it's built by
test_peg_generator: always get the AST state from the current interpreter.
diff --git a/Parser/pegen.c b/Parser/pegen.c
index 3011993..84bdf8d 100644
--- a/Parser/pegen.c
+++ b/Parser/pegen.c
@@ -1265,7 +1265,8 @@
return RAISE_SYNTAX_ERROR("multiple statements found while compiling a single statement");
}
-#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
+ // test_peg_generator defines _Py_TEST_PEGEN to not call PyAST_Validate()
+#if defined(Py_DEBUG) && !defined(_Py_TEST_PEGEN)
if (p->start_rule == Py_single_input ||
p->start_rule == Py_file_input ||
p->start_rule == Py_eval_input)