[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