gh-112388: Fix an error that was causing the parser to try to overwrite tokenizer errors (#112410)

Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
This commit is contained in:
Pablo Galindo Salgado 2023-11-27 18:36:11 +00:00 committed by GitHub
parent 967f2a3052
commit 2c8b191742
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 0 deletions

View file

@ -2349,6 +2349,7 @@ def test_error_string_literal(self):
def test_invisible_characters(self):
self._check_error('print\x17("Hello")', "invalid non-printable character")
self._check_error(b"with(0,,):\n\x01", "invalid non-printable character")
def test_match_call_does_not_raise_syntax_error(self):
code = """

View file

@ -0,0 +1,2 @@
Fix an error that was causing the parser to try to overwrite tokenizer
errors. Patch by pablo Galindo

View file

@ -219,6 +219,10 @@ _PyPegen_tokenize_full_source_to_check_for_errors(Parser *p) {
void *
_PyPegen_raise_error(Parser *p, PyObject *errtype, int use_mark, const char *errmsg, ...)
{
// Bail out if we already have an error set.
if (p->error_indicator && PyErr_Occurred()) {
return NULL;
}
if (p->fill == 0) {
va_list va;
va_start(va, errmsg);