diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2014-10-08 14:03:13 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2014-10-08 14:03:13 +0000 |
commit | 19d4baed5721eb7c95e56c2bec68ae7db6308f9e (patch) | |
tree | d77929061927995d8e986e036e1f3492deb0e252 /libgo/runtime/go-defer.c | |
parent | 9d07d890e6542570950e1b0bbbb231fac3249774 (diff) | |
download | gcc-19d4baed5721eb7c95e56c2bec68ae7db6308f9e.zip gcc-19d4baed5721eb7c95e56c2bec68ae7db6308f9e.tar.gz gcc-19d4baed5721eb7c95e56c2bec68ae7db6308f9e.tar.bz2 |
re PR go/60406 (recover.go: test13reflect2 test failure)
PR go/60406
runtime: Check callers in can_recover if return address doesn't match.
Also use __builtin_extract_return_address and tighten up the
checks in FFI code.
Fixes PR 60406.
From-SVN: r216003
Diffstat (limited to 'libgo/runtime/go-defer.c')
-rw-r--r-- | libgo/runtime/go-defer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libgo/runtime/go-defer.c b/libgo/runtime/go-defer.c index 5dd8c31..3a48fe1 100644 --- a/libgo/runtime/go-defer.c +++ b/libgo/runtime/go-defer.c @@ -80,6 +80,6 @@ __go_set_defer_retaddr (void *retaddr) g = runtime_g (); if (g->defer != NULL) - g->defer->__retaddr = retaddr; + g->defer->__retaddr = __builtin_extract_return_addr (retaddr); return 0; } |