summaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-01-31 23:12:42 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-01-31 23:12:42 +0000
commit07eac0101d7ae7c620e6aed9579df36bf520b5f7 (patch)
tree55a3ff09d744a0d922fdbd77d7211de2573c8ede /libgo
parent9add6570997485bc9e37526687d5016d06cd5901 (diff)
downloadgcc-07eac0101d7ae7c620e6aed9579df36bf520b5f7.tar.gz
runtime: Recognize morestack.S if there is no function name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195634 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgo')
-rw-r--r--libgo/runtime/go-callers.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/libgo/runtime/go-callers.c b/libgo/runtime/go-callers.c
index b6c494cb346..c20dbf35610 100644
--- a/libgo/runtime/go-callers.c
+++ b/libgo/runtime/go-callers.c
@@ -34,13 +34,24 @@ callback (void *data, uintptr_t pc, const char *filename, int lineno,
/* Skip split stack functions. */
if (function != NULL)
{
- const char *p = function;
+ const char *p;
+ p = function;
if (__builtin_strncmp (p, "___", 3) == 0)
++p;
if (__builtin_strncmp (p, "__morestack_", 12) == 0)
return 0;
}
+ else if (filename != NULL)
+ {
+ const char *p;
+
+ p = strrchr (filename, '/');
+ if (p == NULL)
+ p = filename;
+ if (__builtin_strncmp (p, "morestack.S", 11) == 0)
+ return 0;
+ }
if (arg->skip > 0)
{