Issue |
142326
|
Summary |
[LLD][AArch64] Occasionally LLD drops data marker for long abs thunks
|
Labels |
lld,
lld:ELF
|
Assignees |
|
Reporter |
maksfb
|
In some cases, LLD may drop `$d` (data in code marker) symbol in the middle of created absolute long thunk. E.g.:
```
$ llvm-objdump -d <binary>
...
0000000013cef07c <__AArch64AbsLongThunk__foo>:
13cef07c: 58000050 ldr x16, 13cef084 <__AArch64AbsLongThunk__foo+0x8>
13cef080: d61f0200 br x16
13cef084: 0bce33d0 .inst 0x0bce33d0 ; undefined
13cef088: 00000000 udf #0
...
$ llvm-nm --special-syms -nS <binary>
...
0000000013cef07c 0000000000000010 t __AArch64AbsLongThunk_<foo>
0000000013cef08c t $x
0000000013cef08c 0000000000000010 t __AArch64AbsLongThunk_<bar>
...
```
The expected output for `llvm-nm` should include:
```
0000000013cef084 t $d
```
The bug manifests on large binaries and less than one in a thousand thunks will have a symbol missing.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs