From: Russ Cox Date: Wed, 30 Oct 2024 14:18:00 +0000 (-0400) Subject: cmd/compile: fix an internal crash in embed X-Git-Tag: go1.24rc1~479 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=1e740c766976afc944776c428837dce3e65e3705;p=gostls13.git cmd/compile: fix an internal crash in embed Observed in the telemetry data. Was causing truncated error outputs. Change-Id: I9f0a86e1e6caa855f97a3d6e51328c4c9685c937 Reviewed-on: https://go-review.googlesource.com/c/go/+/623535 Reviewed-by: Cherry Mui Reviewed-by: Cuong Manh Le Reviewed-by: Robert Griesemer LUCI-TryBot-Result: Go LUCI Auto-Submit: Russ Cox --- diff --git a/src/cmd/compile/internal/staticdata/embed.go b/src/cmd/compile/internal/staticdata/embed.go index be939db877..28468bda03 100644 --- a/src/cmd/compile/internal/staticdata/embed.go +++ b/src/cmd/compile/internal/staticdata/embed.go @@ -113,6 +113,9 @@ func WriteEmbed(v *ir.Name) { } files := embedFileList(v, kind) + if base.Errors() > 0 { + return + } switch kind { case embedString, embedBytes: file := files[0] diff --git a/src/cmd/compile/testdata/script/embedbad.txt b/src/cmd/compile/testdata/script/embedbad.txt new file mode 100644 index 0000000000..09e4254561 --- /dev/null +++ b/src/cmd/compile/testdata/script/embedbad.txt @@ -0,0 +1,19 @@ +# Check that compiler does not silently crash at bad embed error. + +! go build +stderr 'multiple files for type string' +stderr 'multiple files for type \[\]byte' + +-- go.mod -- +module m + +-- x.go -- +package p + +import _ "embed" + +//go:embed x.go go.mod +var s string + +//go:embed x.go go.mod +var b []byte