bpo-40555: Check for p->error_indicator in loop rules after the main loop is done (GH-19986)
diff --git a/Parser/pegen/parse.c b/Parser/pegen/parse.c
index 3a08abb..ae86841 100644
--- a/Parser/pegen/parse.c
+++ b/Parser/pegen/parse.c
@@ -11437,7 +11437,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -11876,7 +11876,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -12252,7 +12252,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -12911,7 +12911,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -13267,7 +13267,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -13369,7 +13369,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -13422,7 +13422,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -13475,7 +13475,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -13577,7 +13577,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -13679,7 +13679,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -13781,7 +13781,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -13834,7 +13834,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14007,7 +14007,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14145,7 +14145,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14345,7 +14345,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14447,7 +14447,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14500,7 +14500,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14553,7 +14553,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14655,7 +14655,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14757,7 +14757,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14859,7 +14859,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14912,7 +14912,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -14965,7 +14965,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -15018,7 +15018,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -15358,7 +15358,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -15567,7 +15567,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}
@@ -17165,7 +17165,7 @@
}
p->mark = mark;
}
- if (n == 0) {
+ if (n == 0 || p->error_indicator) {
PyMem_Free(children);
return NULL;
}