================
@@ -292,16 +292,27 @@ int DwarfInstructions<A, R>::stepWithDwarf(
isSignalFrame = cieInfo.isSignalFrame;
-#if defined(_LIBUNWIND_TARGET_AARCH64) &&
\
- !defined(_LIBUNWIND_TARGET_AARCH64_AUTHENTICATED_UNWINDING)
+#if defined(_LIBUNWIND_TARGET_AARCH64)
// There are two ways of return address signing: pac-ret (enabled via
// -mbranch-protection=pac-ret) and ptrauth-returns (enabled as part of
// Apple's arm64e or experimental pauthtest ABI on Linux). The code
- // below handles signed RA for pac-ret, while ptrauth-returns uses
- // different logic.
+ // below handles signed RA for ptrauth-returns, while pac-ret uses pacm
+ // instructions from the hint space.
+ //
// TODO: unify logic for both cases, see
// https://github.com/llvm/llvm-project/issues/160110
- //
+#if defined(_LIBUNWIND_TARGET_AARCH64_AUTHENTICATED_UNWINDING)
+ if (isReturnAddressSignedWithPC(addressSpace, registers, cfa, prolog)) {
----------------
kovdan01 wrote:
Are there any PRs besides #202742 which this PR depends on? It looks like that
`isReturnAddressSignedWithPC` is undefined (grepping it in libunwind only shows
this occurrence), which causes a build failure on pauthtest buildbot:
https://lab.llvm.org/buildbot/#/builders/227/builds/3082
https://github.com/llvm/llvm-project/pull/202772
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits