[llvm] [llvm][ARM] Add Addend Checks for MOVT and MOVW instructions. (PR #111970)

Martin Storsjö via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 14 04:21:43 PDT 2024


mstorsjo wrote:

This breaks code generation for Windows/ARM - we hit the `Relocation Not In Range` when compiling regular C/C++ code.

This is reproducible with https://martin.st/temp/outofrange.cpp, like this:
```
$ clang -target armv7-w64-mingw32 outofrange.cpp -O3 -c
error: Relocation Not In Range
error: Relocation Not In Range
2 errors generated.
```

When looking at the output of the same compilation like this:
```
$ clang -target armv7-w64-mingw32 outofrange.cpp -O3 -S -o - | grep -E 'upper16|lower16'
```
There's no single case of a lower16/upper16 relocation that has any offset at all - yet compilation fails.

Please revert while figuring out what's going wrong here.

https://github.com/llvm/llvm-project/pull/111970


More information about the llvm-commits mailing list