`IMAGE_REL_AMD64_SECREL` currently falls through the default case. Its `Addend` is built using the target symbol's section offset. This is incorrect: for a SECREL against a section symbol (offset 0), the real value is stored as the addend in the relocated field. This results in the SECREL writer always writing 0, which is wrong. This patch reads the 4-byte field addend for SECREL, as `REL32` and `ADDR64` already do. It also adds a test which fails without this. Source: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format |
||
|---|---|---|
| .. | ||
| IntelJITEvents | ||
| IntelJITProfiling | ||
| Interpreter | ||
| JITLink | ||
| MCJIT | ||
| OProfileJIT | ||
| Orc | ||
| PerfJITEvents | ||
| RuntimeDyld | ||
| CMakeLists.txt | ||
| ExecutionEngine.cpp | ||
| ExecutionEngineBindings.cpp | ||
| GDBRegistrationListener.cpp | ||
| SectionMemoryManager.cpp | ||
| TargetSelect.cpp | ||