diff options
author | Pavel Labath <pavel@labath.sk> | 2025-04-23 13:31:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-23 13:31:17 +0200 |
commit | 1fd0b41b44603c190f507f222c16d9f98470f89d (patch) | |
tree | 06cac4e880e76de135cdea4680e4330b5c91d4fb /llvm/lib/CodeGen/PrologEpilogInserter.cpp | |
parent | a99e055030f0da61651e808cbb208bb39594cdc0 (diff) | |
download | llvm-1fd0b41b44603c190f507f222c16d9f98470f89d.zip llvm-1fd0b41b44603c190f507f222c16d9f98470f89d.tar.gz llvm-1fd0b41b44603c190f507f222c16d9f98470f89d.tar.bz2 |
[lldb/DWARF] Remove "range lower than function low_pc" check (#132395)
The check is not correct for discontinuous functions, as one of the
blocks could very well begin before the function entry point. To catch
dead-stripped ranges, I check whether the functions is after the first
known code address. I don't print any error in this case as that is a
common/expected situation.
This avoids many errors like:
```
error: ld-linux-x86-64.so.2 0x00085f3b: adding range [0x0000000000001ae8-0x0000000000001b07) which has a
base that is less than the function's low PC 0x000000000001cfb0. Please file a bug and attach the file at
the start of this error message
```
when debugging binaries on debian trixie because the dynamic linker
(ld-linux) contains discontinuous functions.
If the block ranges is not a subrange of the enclosing block then this
will range will currently be added to the outer block as well (i.e., we
get the same behavior that's currently possible for non-subrange blocks
larger than function_low_pc). However, this code path is buggy and I'd
like to change that (#117725).
Diffstat (limited to 'llvm/lib/CodeGen/PrologEpilogInserter.cpp')
0 files changed, 0 insertions, 0 deletions