summaryrefslogtreecommitdiffstats
path: root/Tools/cases_generator
diff options
context:
space:
mode:
authorDong-hee Na <donghee.na@python.org>2023-07-17 00:09:11 (GMT)
committerGitHub <noreply@github.com>2023-07-17 00:09:11 (GMT)
commit48956cc60ea05bc50b6cd73e53dd9a7d4b1dac9f (patch)
tree95ee8b4eccc949bb6e44956fa5405a51364b30c2 /Tools/cases_generator
parent383dcbebcda576e3a3fd18c9246364f67bb65df5 (diff)
downloadcpython-48956cc60ea05bc50b6cd73e53dd9a7d4b1dac9f.zip
cpython-48956cc60ea05bc50b6cd73e53dd9a7d4b1dac9f.tar.gz
cpython-48956cc60ea05bc50b6cd73e53dd9a7d4b1dac9f.tar.bz2
gh-106797: Remove warning logs from Python/generated_cases.c.h (gh-106798)
Diffstat (limited to 'Tools/cases_generator')
-rw-r--r--Tools/cases_generator/generate_cases.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/Tools/cases_generator/generate_cases.py b/Tools/cases_generator/generate_cases.py
index df5de6e..a0a8b8c 100644
--- a/Tools/cases_generator/generate_cases.py
+++ b/Tools/cases_generator/generate_cases.py
@@ -98,6 +98,8 @@ def effect_size(effect: StackEffect) -> tuple[int, str]:
assert not effect.cond, "Array effects cannot have a condition"
return 0, effect.size
elif effect.cond:
+ if effect.cond in ("0", "1"):
+ return 0, effect.cond
return 0, f"{maybe_parenthesize(effect.cond)} ? 1 : 0"
else:
return 1, ""
@@ -217,7 +219,7 @@ class Formatter:
self.emit(f"STACK_GROW({osym});")
def declare(self, dst: StackEffect, src: StackEffect | None):
- if dst.name == UNUSED:
+ if dst.name == UNUSED or dst.cond == "0":
return
typ = f"{dst.type}" if dst.type else "PyObject *"
if src:
@@ -241,7 +243,10 @@ class Formatter:
self.emit(f"Py_XSETREF({dst.name}, {cast}{src.name});")
else:
stmt = f"{dst.name} = {cast}{src.name};"
- if src.cond:
+ if src.cond and src.cond != "1":
+ if src.cond == "0":
+ # It will not be executed
+ return
stmt = f"if ({src.cond}) {{ {stmt} }}"
self.emit(stmt)
@@ -1067,7 +1072,10 @@ class Analyzer:
for effect in comp.instr.output_effects:
assert not effect.size, effect
if effect.cond:
- pushed_symbolic.append(maybe_parenthesize(f"{maybe_parenthesize(effect.cond)} ? 1 : 0"))
+ if effect.cond in ("0", "1"):
+ pushed_symbolic.append(effect.cond)
+ else:
+ pushed_symbolic.append(maybe_parenthesize(f"{maybe_parenthesize(effect.cond)} ? 1 : 0"))
sp += 1
high = max(sp, high)
if high != max(0, sp):