summaryrefslogtreecommitdiffstats
path: root/libgo/runtime
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-12-12 01:08:52 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-12-12 01:08:52 +0000
commita4a14eb29309a20c3b21ed4fc79d9f29abf162bc (patch)
tree6d22f3392a75c3aaa5aa1da655668fca943b1d10 /libgo/runtime
parentdc2977939ca7d738e1330c11deae1c97602a36ae (diff)
downloadppe42-gcc-a4a14eb29309a20c3b21ed4fc79d9f29abf162bc.tar.gz
ppe42-gcc-a4a14eb29309a20c3b21ed4fc79d9f29abf162bc.zip
compiler, reflect, runtime: Implement method values in reflect.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205913 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgo/runtime')
-rw-r--r--libgo/runtime/go-recover.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libgo/runtime/go-recover.c b/libgo/runtime/go-recover.c
index 6cef2660ea4..ceb9b572582 100644
--- a/libgo/runtime/go-recover.c
+++ b/libgo/runtime/go-recover.c
@@ -84,6 +84,11 @@ __go_can_recover (const void *retaddr)
if (name[0] == 'f' && name[1] == 'f' && name[2] == 'i' && name[3] == '_')
return 1;
+ /* We may also be called by reflect.makeFuncImpl.call, for a
+ function created by reflect.MakeFunc. */
+ if (__builtin_strstr ((const char *) name, "makeFuncImpl") != NULL)
+ return 1;
+
return 0;
}
OpenPOWER on IntegriCloud