[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