gcc/libgo/go/runtime
Ian Lance Taylor 053a1f2320 runtime: use the call instruction's PC for panic-in-runtime detection
If a panic happens in the runtime we turn that into a fatal error.
    We use the caller's PC to determine if the panic call is inside
    the runtime. getcallerpc returns the PC immediately after the
    call instruction. If the call is the very last instruction of a
    function, it may not find this PC belong to a runtime function,
    giving false result. We need to back off the PC by 1 to the call
    instruction.
    
    The gc runtime doesn't do this because the gc compiler always
    emit an instruction following a panic call, presumably an UNDEF
    instruction which turns into an architecture-specific illegal
    instruction. Our compiler doesn't do this.
    
    Reviewed-on: https://go-review.googlesource.com/c/159437

From-SVN: r268358
2019-01-29 00:49:23 +00:00
..
debug libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
internal libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
msan libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
pprof libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
testdata libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
trace libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
alg.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
atomic_pointer.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
auxv_none.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
callers_test.go
cgo_gccgo.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
cgocall.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
cgocheck.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
chan_test.go
chan.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
chanbarrier_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
closure_test.go
compiler.go
complex_test.go
cpuprof.go compiler: improve name mangling for packpaths 2018-10-25 22:18:08 +00:00
cputicks.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
crash_cgo_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
crash_gccgo_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
crash_nonunix_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
crash_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
crash_unix_test.go
debug_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
debug.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
env_posix.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
env_test.go
error.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
example_test.go
export_debug_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
export_linux_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
export_mmap_test.go
export_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
export_unix_test.go
export_windows_test.go
extern.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
fastlog2_test.go
fastlog2.go
fastlog2table.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
ffi.go runtime: add padding to FFI type of struct ending with zero-sized field 2019-01-15 23:21:24 +00:00
float.go
gc_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
gcinfo_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
hash32.go
hash64.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
hash_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
heapdump.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
iface_test.go
iface.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
lfstack_32bit.go libgo: support x32 as GOARCH=amd64p32 GOOS=linux 2018-10-01 20:17:11 +00:00
lfstack_64bit.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
lfstack_test.go
lfstack.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
lock_futex.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
lock_js.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
lock_sema.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
malloc_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
malloc.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
map_benchmark_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
map_fast32.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
map_fast64.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
map_faststr.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
map_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
map.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mbarrier.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mbitmap.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mcache.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mcentral.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mem_gccgo.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
memmove_linux_amd64_test.go
memmove_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
mfinal_test.go
mfinal.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mfixalloc.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mgc_gccgo.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mgc.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mgclarge.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mgcmark.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mgcsweep.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mgcsweepbuf.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mgcwork.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mheap.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mkfastlog2table.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mksizeclasses.go
mprof.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
msan0.go
msize.go
mstats.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
mwbbuf.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
net_plan9.go compiler: improve name mangling for packpaths 2018-10-25 22:18:08 +00:00
netpoll_aix.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
netpoll_epoll.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
netpoll_fake.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
netpoll_kqueue.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
netpoll_solaris.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
netpoll_stub.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
netpoll_windows.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
netpoll.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
norace_test.go runtime: remove the dummy arg of getcallersp 2018-08-24 18:15:04 +00:00
numcpu_freebsd_test.go
os3_solaris.go runtime, os: fix the build on Solaris 2018-09-26 03:29:07 +00:00
os_aix.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
os_darwin.go libgo: update to Go 1.11.1 release 2018-10-08 14:21:30 +00:00
os_dragonfly.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_freebsd.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
os_gccgo.go runtime: add precise stack scan support 2018-12-05 23:09:51 +00:00
os_js.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_linux_arm64.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
os_linux_arm.go re PR go/88927 (Bootstrap failure on arm in libgo starting with r268084) 2019-01-22 00:06:44 +00:00
os_linux_mips64x.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_linux_mipsx.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_linux_noauxv.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_linux_ppc64x.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_linux_s390x.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_linux.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_netbsd.go libgo: update to Go 1.11.1 release 2018-10-08 14:21:30 +00:00
os_openbsd.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
os_solaris.go
os_windows_arm.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
panic.go runtime: use the call instruction's PC for panic-in-runtime detection 2019-01-29 00:49:23 +00:00
print.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
proc_runtime_test.go
proc_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
proc.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
profbuf_test.go
profbuf.go
proflabel.go compiler: improve name mangling for packpaths 2018-10-25 22:18:08 +00:00
race0.go
rand_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
rdebug.go compiler: improve name mangling for packpaths 2018-10-25 22:18:08 +00:00
relax_stub.go
runtime1.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
runtime2.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
runtime_mmap_test.go
runtime_test.go runtime: skip testSetPanicOnFault for gollvm 2018-10-09 16:51:10 +00:00
runtime_unix_test.go
runtime-lldb_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
runtime.go
rwmutex_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
rwmutex.go
select.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
sema.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
semasleep_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
signal_gccgo.go
signal_sighandler.go runtime: add precise stack scan support 2018-12-05 23:09:51 +00:00
signal_unix.go runtime: install SIGURG handler on C created threads 2019-01-24 05:31:14 +00:00
sigqueue.go compiler: improve name mangling for packpaths 2018-10-25 22:18:08 +00:00
sizeclasses.go
sizeof_test.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
slice_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
slice.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
string_test.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
string.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
stubs2.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
stubs3.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
stubs_linux.go runtime: add precise stack scan support 2018-12-05 23:09:51 +00:00
stubs_nonlinux.go runtime: add missing return for non-GNU/Linux version of tgkill 2018-12-07 14:22:55 +00:00
stubs.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
symtab_test.go
symtab.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
sys_darwin_32.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
sys_darwin_64.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
sys_darwin.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
sys_wasm.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
time.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
timeasm.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
timestub2.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
timestub.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
trace.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
traceback_gccgo.go libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
type.go compiler, runtime: panic on uncomparable map key, even if map is empty 2019-01-15 20:32:39 +00:00
typekind.go
unaligned1.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
unaligned2.go
utf8.go libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
write_err_android.go
write_err.go