-
Notifications
You must be signed in to change notification settings - Fork 14.5k
Closed
Labels
Description
Hi,
Ever since 6859685 (or, more precisely, 84428da), the AVR backend encodes jumps across basic blocks with an extra offset of 2.
That's related to this check:
if (const auto *SymA = Target.getSymA()) |
... which wasn't triggered for basic blocks before, but it is now (i.e. shouldForceRelocation()
returns false
for such jumps now).
I'm working on a pure LLVM reproducer, but the original rustc issue has been reported here - if you compare the *.elf from older toolchain and the newer toolchain, you'll see that calls are alright, but jumps have an extra offset.