================
@@ -202,10 +202,12 @@ class _LIBUNWIND_HIDDEN LocalAddressSpace {
 
   pint_t getEncodedP(pint_t &addr, pint_t end, uint8_t encoding,
                      pint_t datarelBase = 0, pint_t *resultAddr = nullptr);
-  bool findFunctionName(pint_t addr, char *buf, size_t bufLen,
+  template <typename T>
----------------
kovdan01 wrote:

@asl I suppose that the answer is no - the only place where it was somehow 
explained discussion in the previous libunwind hardening PR by Oliver #143230.

And it's definitely worth making things clearer to prevent accidental silent 
regression during future changes like refactorings.

At this point, I do not see a better way than just add a comment like the one 
below for each of the function declarations accepting `link_reg_t` by const 
l-value reference:

```
Note: `addr` is passed as const l-value reference intentionally to keep 
signature of `__ptrauth`-qualified values of `link_reg_t` type on AArch64 
PAuth-enabled ABI intact. Passing the raw pointer by value would cause 
authentication on the caller side and make the pointer prone to substitution if 
spilled to the stack in the callee.
```

I find this way not very nice, but I fail to come up with something less bulky. 
Could you please tell me if you have some suggestions, and if no, does the 
comment above sound reasonable for you?

https://github.com/llvm/llvm-project/pull/173765
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to