[libcxx-commits] [PATCH] D114818: [libunwind] Fix unwind_leaffunction test
Daniel Kiss via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Dec 1 02:02:05 PST 2021
danielkiss accepted this revision.
danielkiss added a comment.
In D114818#3162689 <https://reviews.llvm.org/D114818#3162689>, @ldionne wrote:
> Do we need to apply `__attribute__((noinline))` to `main`? Can you try that out and let me know if that helps?
Clang automatically adds noinline to main.
In D114818#3162675 <https://reviews.llvm.org/D114818#3162675>, @vvereschaka wrote:
> Hi @ldionne, @leonardchan
>
> I ran these changes on Linux (Ubuntu 18.04)/Aarch64 board. The test gets failed because of missed 'main':
>
> ubuntu at jetson8:/tmp$ ./t.tmp.exe
> info.dli_sname: _Z14signal_handleri
> info.dli_sname: __kernel_rt_sigreturn
> info.dli_sname: _Z18crashing_leaf_funcv
> info.dli_sname: __libc_start_main
Interesting it works on Ubuntu20.04/Aarch64, I compile the code with ToT clang or gcc-10.
could you share an objdump of main?
> void func() {
> crashing_leaf_func();
> }
>
> Then the test passes, but it looks like unwinder skips past func (it jumps from _Z18crashing_leaf_funcv to main). Perhaps all this hints at an underlying issue in libunwind?
here `func` will tail call `crashing_leaf_func` so it is expected to not be visible during the unwind because the return address will point to somewhere in main.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114818/new/
https://reviews.llvm.org/D114818
More information about the libcxx-commits
mailing list