[all-commits] [llvm/llvm-project] adabc8: [lldb] Merge/unify ABI-provided AArch64 unwind pla...

Pavel Labath via All-commits all-commits at lists.llvm.org
Wed May 14 02:30:19 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: adabc83a92130e556d4d16adaee6e81e09fdf570
      https://github.com/llvm/llvm-project/commit/adabc83a92130e556d4d16adaee6e81e09fdf570
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2025-05-14 (Wed, 14 May 2025)

  Changed paths:
    M lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
    M lldb/source/Plugins/ABI/AArch64/ABIAArch64.h
    M lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp
    M lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
    M lldb/source/Symbol/FuncUnwinders.cpp

  Log Message:
  -----------
  [lldb] Merge/unify ABI-provided AArch64 unwind plans (#139545)

The macos and sysv ABIs return functionally equivalent unwind plans, so
they can be implemented in the base AArch64 class. The only difference
between them was that the macos plan provided a "pc=lr" rule whereas the
sysv plan called SetReturnAddressRegister (which causes the unwind
machinery to act as if that rule was present). This difference was
enough to cause `CompareUnwindPlansForIdenticalInitialPCLocation` to
return a different value and break the (temporarily reverted)
TestUnwindFramelessFaulted test.

While merging the two functions, I couldn't stop myself from simplifying
them to use the generic register number schemes -- which exposed another
bug in CompareUnwindPlansForIdenticalInitialPCLocation, namely that it
was expecting all unwind plans to use the LLDB numbering scheme. This
patch fixes that as well.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list