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

Reply via email to