]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj: fix inline marker issue on s390x
authorMichael Munday <mike.munday@ibm.com>
Mon, 10 Aug 2020 15:01:21 +0000 (08:01 -0700)
committerMichael Munday <mike.munday@ibm.com>
Thu, 20 Aug 2020 15:57:33 +0000 (15:57 +0000)
commit268dd2e5a7a8919bd26f0a59c847f8268a2437d1
tree12e5426fafa5d0a24e54253707f7f4d4b16463e9
parent822dca4b383611335385ef05c2882d23f6f89d88
cmd/internal/obj: fix inline marker issue on s390x

The optimization that replaces inline markers with pre-existing
instructions assumes that 'Prog' values produced by the compiler are
still reachable after the assembler has run. This was not true on
s390x where the assembler was removing NOP instructions from the
linked list of 'Prog' values. This led to broken inlining data
which in turn caused an infinite loop in the runtime traceback code.

Fix this by stopping the s390x assembler backend removing NOP
values. It does not make any difference to the output of the
assembler because NOP instructions are 0 bytes long anyway.

Fixes #40473.

Change-Id: I9b97c494afaae2d5ed6bca4cd428b4132b5f8133
Reviewed-on: https://go-review.googlesource.com/c/go/+/249448
Run-TryBot: Michael Munday <mike.munday@ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/internal/obj/pcln.go
src/cmd/internal/obj/s390x/objz.go