diff options
author | Guido van Rossum <guido@python.org> | 2023-01-26 17:15:05 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-26 17:15:05 (GMT) |
commit | 9f2c479eaf7d922746ef2f3c85b5c781757686b1 (patch) | |
tree | f2ea0d899bc5bf890ad89efe3bd931c09c535f27 /Tools | |
parent | 409f5337a3e466a5ef673797575cbd1745d27ca9 (diff) | |
download | cpython-9f2c479eaf7d922746ef2f3c85b5c781757686b1.zip cpython-9f2c479eaf7d922746ef2f3c85b5c781757686b1.tar.gz cpython-9f2c479eaf7d922746ef2f3c85b5c781757686b1.tar.bz2 |
gh-98831: Fix two bugs in case generator (#101349)
Fix two bugs in case generator
- UndefinedLocalError when generating metadata for an 'op'
- Accidental newline inserted in test_generator.py
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/cases_generator/generate_cases.py | 10 | ||||
-rw-r--r-- | Tools/cases_generator/test_generator.py | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/Tools/cases_generator/generate_cases.py b/Tools/cases_generator/generate_cases.py index b794241..9d894d2 100644 --- a/Tools/cases_generator/generate_cases.py +++ b/Tools/cases_generator/generate_cases.py @@ -736,7 +736,7 @@ class Analyzer: def get_stack_effect_info( self, thing: parser.InstDef | parser.Super | parser.Macro - ) -> tuple[Instruction, str, str]: + ) -> tuple[Instruction|None, str, str]: def effect_str(effect: list[StackEffect]) -> str: if getattr(thing, 'kind', None) == 'legacy': @@ -752,6 +752,9 @@ class Analyzer: instr = self.instrs[thing.name] popped = effect_str(instr.input_effects) pushed = effect_str(instr.output_effects) + else: + instr = None + popped = pushed = "", "" case parser.Super(): instr = self.super_instrs[thing.name] popped = '+'.join(effect_str(comp.instr.input_effects) for comp in instr.parts) @@ -770,8 +773,9 @@ class Analyzer: pushed_data = [] for thing in self.everything: instr, popped, pushed = self.get_stack_effect_info(thing) - popped_data.append( (instr, popped) ) - pushed_data.append( (instr, pushed) ) + if instr is not None: + popped_data.append( (instr, popped) ) + pushed_data.append( (instr, pushed) ) def write_function(direction: str, data: list[tuple[Instruction, str]]) -> None: self.out.emit("\n#ifndef NDEBUG"); diff --git a/Tools/cases_generator/test_generator.py b/Tools/cases_generator/test_generator.py index cf58e6a..bd1b974 100644 --- a/Tools/cases_generator/test_generator.py +++ b/Tools/cases_generator/test_generator.py @@ -358,8 +358,7 @@ def test_macro_instruction(): { PyObject *arg1 = _tmp_1; PyObject *interim; - uint16_t counter = re - ad_u16(&next_instr[0].cache); + uint16_t counter = read_u16(&next_instr[0].cache); interim = op1(arg1); _tmp_1 = interim; } |