Lang Hames ce4fcfc9e4
[llvm-jitlink] Make -show-addrs work without -check, fix fallout. (#175491)
Ensures that the address scraping passes are added to the JIT linker pipeline
if either of the -check or -show-addrs are passed. Prior to this commit we only
considered -check, so passing -show-addrs on its own was printing an empty
(unpopulated) symbol table.

This change exposed bugs in RuntimeDyldChecker's `MemoryRegionInfo` type, aned
llvm-jitlink's symbol printing code:

 - `MemoryRegionInfo` was assuming that zero-sized symbols wouldn't be defined
   and was using Size == 0 as a proxy for "region info uninitialized". This was
   triggering assertions for valid LinkGraphs containing zero-sized symbols.

 - llvm-jitlink's symbol printing code was assuming that all defined symbols
   contained content, and was not correctly handling zero-fill / absolute
   symbols. This triggered assertions about requesting content addresses for
   non-content symbols.

This commit fixes the issues above, and adds both a generic testcase for the
-show-addrs option, and an ELF-specific testcase with a zero-sized symbol to
check that the option works for such symbols.
2026-01-13 00:13:12 +11:00
..