[libbacktrace] Declare external backtrace fns noinline
authorTom de Vries <tdevries@suse.de>
Fri, 8 Feb 2019 09:49:06 +0000 (09:49 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Fri, 8 Feb 2019 09:49:06 +0000 (09:49 +0000)
commit4af50e13a035804b80551e4649cc2b055588ffc8
treeb74316f8166f219c2fee18d534d8eb67b014e69c
parent2536d696a3fc101af0b731c10351777c4c0f0bc1
[libbacktrace] Declare external backtrace fns noinline

The backtrace functions backtrace_full, backtrace_print and backtrace_simple
walk the call stack, but make sure to skip the first entry, in order to skip
over the functions themselves, and start the backtrace at the caller of the
functions.

When compiling with -flto, the functions may be inlined, causing them to skip
over the caller instead.

Fix this by declaring the functions with __attribute__((noinline)).

2019-02-08  Tom de Vries  <tdevries@suse.de>

* backtrace.c (backtrace_full): Declare with __attribute__((noinline)).
* print.c (backtrace_print): Same.
* simple.c (backtrace_simple): Same.

From-SVN: r268668
libbacktrace/ChangeLog
libbacktrace/backtrace.c
libbacktrace/print.c
libbacktrace/simple.c