]> 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>
Fri, 14 Aug 2020 08:25:40 +0000 (08:25 +0000)
commitd0d6593d1d4e81acd073244f42b6893fa65c99d8
treec08115d08e69703411a752f38662a404229e7283
parentcde5fd1c0f8c40804bfd942eec1e2d69bccf4e13
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: Ib4fabadd1de8adb80421f75950ee9aad2111147a
Reviewed-on: https://go-review.googlesource.com/c/go/+/247697
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