From: Ian Lance Taylor Date: Wed, 9 Oct 2013 00:02:14 +0000 (+0000) Subject: runtime: Do not report thunks and recover functions in backtrace. X-Git-Tag: upstream/12.2.0~67489 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7af190f113aecdbed44c6406ccefb81681580021;p=platform%2Fupstream%2Fgcc.git runtime: Do not report thunks and recover functions in backtrace. From-SVN: r203294 --- diff --git a/libgo/runtime/go-callers.c b/libgo/runtime/go-callers.c index dd1cf79..291dfd0 100644 --- a/libgo/runtime/go-callers.c +++ b/libgo/runtime/go-callers.c @@ -53,6 +53,21 @@ callback (void *data, uintptr_t pc, const char *filename, int lineno, return 0; } + /* Skip thunks and recover functions. There is no equivalent to + these functions in the gc toolchain, so returning them here means + significantly different results for runtime.Caller(N). */ + if (function != NULL) + { + const char *p; + + p = __builtin_strchr (function, '.'); + if (p != NULL && __builtin_strncmp (p + 1, "$thunk", 6) == 0) + return 0; + p = __builtin_strrchr (function, '$'); + if (p != NULL && __builtin_strcmp(p, "$recover") == 0) + return 0; + } + if (arg->skip > 0) { --arg->skip;