From c7bbf29960c296f7b1b2193d771461c66333fae4 Mon Sep 17 00:00:00 2001 From: Wuerfel_21 Date: Mon, 15 Jun 2026 00:10:33 +0200 Subject: [PATCH 1/2] Fix crash reported by evanh and add extra safety check --- backends/asm/optimize_ir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backends/asm/optimize_ir.c b/backends/asm/optimize_ir.c index 4e726f6c8..77380a131 100644 --- a/backends/asm/optimize_ir.c +++ b/backends/asm/optimize_ir.c @@ -3710,7 +3710,7 @@ OptimizePeepholes(IRList *irl) if (test_is_z && InstrUsesFlags(testir, FLAG_WC)) { changeok = false; } else if (InstrSetsAnyFlags(testir)) { - changeok = sawir; + changeok = sawir && (test_is_c || !FlagsUsedAt(testir->prev,FLAG_WZ)); lastir = testir; break; } @@ -3726,7 +3726,7 @@ OptimizePeepholes(IRList *irl) { ReplaceZWithNC(testir); } - if (IsBranch(lastir)) { + if (lastir != NULL && IsBranch(lastir)) { ReplaceZWithNC(lastir); } } From 297d024a36c379da6e06374bd550445de451c906 Mon Sep 17 00:00:00 2001 From: Wuerfel_21 Date: Mon, 15 Jun 2026 00:28:47 +0200 Subject: [PATCH 2/2] fix test failure --- backends/asm/optimize_ir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/asm/optimize_ir.c b/backends/asm/optimize_ir.c index 77380a131..73911ef65 100644 --- a/backends/asm/optimize_ir.c +++ b/backends/asm/optimize_ir.c @@ -3710,7 +3710,7 @@ OptimizePeepholes(IRList *irl) if (test_is_z && InstrUsesFlags(testir, FLAG_WC)) { changeok = false; } else if (InstrSetsAnyFlags(testir)) { - changeok = sawir && (test_is_c || !FlagsUsedAt(testir->prev,FLAG_WZ)); + changeok = sawir && (test_is_c || !FlagsUsedAt(testir,FLAG_WZ)); lastir = testir; break; }