[all-commits] [llvm/llvm-project] 08ac3b: [win][aarch64] Place catch objects in the fixed ob...

Daniel Paoliello via All-commits all-commits at lists.llvm.org
Tue Jul 8 12:44:32 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 08ac3b39d463b39860f3230933d5d72541368bd5
      https://github.com/llvm/llvm-project/commit/08ac3b39d463b39860f3230933d5d72541368bd5
  Author: Daniel Paoliello <danpao at microsoft.com>
  Date:   2025-07-08 (Tue, 08 Jul 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/wineh-aligned-stack-obj.ll
    A llvm/test/CodeGen/AArch64/wineh-reuse-catch-alloca.ll
    M llvm/test/CodeGen/AArch64/wineh-try-catch.ll

  Log Message:
  -----------
  [win][aarch64] Place catch objects in the fixed object area (#147421)

Fixes #146973

When an object with alignment requirements is placed on the stack, this
causes a stack realignment which causes AArch64 to use x19 to refer to
objects on the stack as there may be a gap between local variables and
the Stack Pointer. This causes issues with the MSVC C++ exception
personality as the offset to the catch object recorded in the handler
table no longer matches the object being used in the catch block itself.

The fix for this is to place catch objects into the fixed object area.



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