]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/riscv: prevent panics on bad branches
authorMark Ryan <markdryan@rivosinc.com>
Wed, 11 Dec 2024 13:03:17 +0000 (14:03 +0100)
committerJoel Sing <joel@sing.id.au>
Wed, 19 Mar 2025 14:00:36 +0000 (07:00 -0700)
commit1aee4f3464b678f135912e2b2703e0f6c060b980
treedea4049d25e91179507ce4d7d56ade7c819f8a77
parent24b395119b4df7f16915b9f01a6aded647b79bbd
cmd/internal/obj/riscv: prevent panics on bad branches

Syntactically incorrect branches, such as

BEQ X5, X6, $1
BEQ X5, X6, 31(X10)

cause the assembler to panic, which they shouldn't really do.  It's
better for the user to see a normal error, as reported for other
syntax errors in riscv64 assembly.  The panics also prevent us
from writing negative tests for these sorts of errors.

Here we fix the issue by ensuring we generate a normal error instead
of panicking when the user provides an invalid branch target.  We
also add a couple of negative tests.

Change-Id: I1da568999a75097484b61a01d418f5d4be3e04fa
Reviewed-on: https://go-review.googlesource.com/c/go/+/637316
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Joel Sing <joel@sing.id.au>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com>
src/cmd/asm/internal/asm/testdata/riscv64error.s
src/cmd/internal/obj/riscv/obj.go