From b6b8b2fe6ef8ceb727c7a157750cdd4e61393489 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Mon, 22 Dec 2025 18:49:17 +0700 Subject: cmd/compile: handle propagating an out-of-range jump table index For an out-of-range jump table index, the constant facts should not be propagated to the destinations. Fixes #76950 Change-Id: Iff29814cb466c7aaa432cec212e5387665c45afc Reviewed-on: https://go-review.googlesource.com/c/go/+/731860 Auto-Submit: Cuong Manh Le Reviewed-by: David Chase Reviewed-by: Cherry Mui LUCI-TryBot-Result: Go LUCI --- src/cmd/compile/internal/ssa/sccp.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/cmd') diff --git a/src/cmd/compile/internal/ssa/sccp.go b/src/cmd/compile/internal/ssa/sccp.go index 9b958d0454..7ef8d6b7c1 100644 --- a/src/cmd/compile/internal/ssa/sccp.go +++ b/src/cmd/compile/internal/ssa/sccp.go @@ -507,6 +507,10 @@ func (t *worklist) propagate(block *Block) { branchIdx = 1 - condLattice.val.AuxInt } else { branchIdx = condLattice.val.AuxInt + if branchIdx < 0 || branchIdx >= int64(len(block.Succs)) { + // unreachable code, do nothing then + break + } } t.edges = append(t.edges, block.Succs[branchIdx]) } else { -- cgit v1.3-5-g45d5