diff options
Diffstat (limited to 'libgo/runtime')
-rw-r--r-- | libgo/runtime/go-callers.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/libgo/runtime/go-callers.c b/libgo/runtime/go-callers.c index b6c494c..c20dbf3 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) { |