diff options
author | pveras <verasbs@gmail.com> | 2025-10-13 19:11:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-13 18:11:10 +0000 |
commit | d74290319e3db3425bf2f0f87ef6c32f1078371f (patch) | |
tree | 0350f860a0402d9de2f36617879c6139e6190f60 /llvm/lib/Support/SourceMgr.cpp | |
parent | 34c0a5f1b44172de0a9464356b12bd7f6c25023c (diff) | |
download | llvm-d74290319e3db3425bf2f0f87ef6c32f1078371f.zip llvm-d74290319e3db3425bf2f0f87ef6c32f1078371f.tar.gz llvm-d74290319e3db3425bf2f0f87ef6c32f1078371f.tar.bz2 |
Delegate to ABI plugin to check if call frame addresses are valid (#161398)
Specially when dealing with different address spaces, CFAs could start
from addresses like 0. For instance, Nvidia GPUs have instructions to
read from local memory that use 0-based offsets and stack memory can be
referenced by these offsets rather than global addresses. Note that ABIs
could already specify what they consider to be valid CFA values but this
was never used in these parts of the unwinder code. For most ABIs, this
makes the validation more strict, as they already used to discard 0s and
then checked for alignment which would discard 1s. There a few
exceptions where 0s were possible and this makes it less strict, like
the RISCV and ARC ABIs.
@jasonmolenda Would you be the appropriate reviewer for this?
Also cc. @clayborg @walter-erquinigo
Diffstat (limited to 'llvm/lib/Support/SourceMgr.cpp')
0 files changed, 0 insertions, 0 deletions