[llvm-bugs] [Bug 48389] New: ld64.lld.darwinnew unwind info is incorrect
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Dec 4 10:06:20 PST 2020
https://bugs.llvm.org/show_bug.cgi?id=48389
Bug ID: 48389
Summary: ld64.lld.darwinnew unwind info is incorrect
Product: lld
Version: unspecified
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: MachO
Assignee: unassignedbugs at nondot.org
Reporter: nicolasweber at gmx.de
CC: llvm-bugs at lists.llvm.org
…or at least subtly different from ld64.
Repro:
1. Download
https://drive.google.com/file/d/1Gjrg4bQCv3uD9Ucqt4ZtroHrz5v0iCJX/view?resourcekey=0-f53UMW57gtrPlSis2sTjKg
and unzip it
2. ~/src/llvm-project/out/gn/bin/ld64.lld.darwinnew @response.txt
3. ./base_unittests --gtest_filter='*Exception*'
Expected: All 3 tests pass
Actual: CallWithEHFrameTest.CatchExceptionHigher crashes.
If you remove --color-diagnostics from response.txt and link with regular `ld`,
it passes.
The source of the test is here:
https://source.chromium.org/chromium/chromium/src/+/master:base/mac/call_with_eh_frame_unittest.mm;l=25?q=CatchExceptionHigher&ss=chromium
The implementation of CallWithEHFrame is here:
https://source.chromium.org/chromium/chromium/src/+/master:base/mac/call_with_eh_frame_asm.S;bpv=1;bpt=0
It's assembly with a custom personality routine, so it's possible things are
wrong in the code -- but it's been working for 5 years and it works with ld64.
https://codereview.chromium.org/1212093002 has the motivation for that code.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20201204/2a407224/attachment.html>
More information about the llvm-bugs
mailing list