[all-commits] [llvm/llvm-project] 7af05a: [AArch64][PAC] Emit `!dbg` locations in `*_vfpthun...

Anatoly Trosinenko via All-commits all-commits at lists.llvm.org
Fri Mar 6 11:02:49 PST 2026


  Branch: refs/heads/release/22.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 7af05aebad78728c19e609d16505e2a67e54ce59
      https://github.com/llvm/llvm-project/commit/7af05aebad78728c19e609d16505e2a67e54ce59
  Author: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
  Date:   2026-03-06 (Fri, 06 Mar 2026)

  Changed paths:
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    A clang/test/DebugInfo/CXX/ptrauth-member-function-pointer-debuglocs.cpp

  Log Message:
  -----------
  [AArch64][PAC] Emit `!dbg` locations in `*_vfpthunk_` functions (#179688)

The usage of pointers to member functions with Pointer Authentication
requires generation of `*_vfpthunk_` functions. These thunk functions
can be later inlined and optimized by replacing the indirect call
instruction with a direct one and then inlining that function call.

In absence of `!dbg` metadata attached to the original call instruction,
such inlining ultimately results in an assertion "!dbg attachment points
at wrong subprogram for function" in the assertions-enabled builds. By
manually executing `opt` with `-verify-each` option on the LLVM IR
produced by the frontend, an actual issue can be observed: "inlinable
function call in a function with debug info must have a !dbg location"
after the replacement of indirect call instruction with the direct one
takes place.

This commit fixes the issue by attaching artificial `!dbg` locations to
the original call instruction (as well as most other instructions in
`*_vfpthunk_` function) the same way it is done for other
compiler-generated helper functions.

(cherry picked from commit 903acc2762d550d8f5934924aaf87b3527c63112)



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