<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/147771>147771</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LLD assertion failure for `RISCV_ALIGN` relaxation
</td>
</tr>
<tr>
<th>Labels</th>
<td>
lld
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jwnrt
</td>
</tr>
</table>
<pre>
LLD hits this assertion when doing the alignment relaxation following some padding bytes.
Here's a reproduction on 8905b1c38f15d7f7b31e741222ae1de0a11222d8:
```asm
.balign 4
.global _start
_start:
.fill 3
.balign 4
```
```console
$ ~/toolchain/bin/clang -fuse-ld=lld -nostdlib ~/linker-bug/repro.S --target=riscv32
ld.lld: /home/jw/llvm-project/lld/ELF/Arch/RISCV.cpp:1012: virtual void {anonymous}::RISCV::finalizeRelax(int) const: Assertion `j + 2 == skip' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/jw/toolchain/bin/ld.lld -Bstatic -m elf32lriscv -X -L/home/jw/toolchain/bin/../lib/clang-runtimes/riscv32/lib -L/home/jw/toolchain/lib/clang/21/lib/riscv32 -L/home/jw/toolchain/bin/../lib/clang-runtimes/riscv32/lib /tmp/repro-01dd63.o -X -o a.out
#0 0x000056424b4055ec llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/jw/llvm-project/llvm/lib/Support/Unix/Signals.inc:819:22
#1 0x000056424b405a79 PrintStackTraceSignalHandler(void*) /home/jw/llvm-project/llvm/lib/Support/Unix/Signals.inc:903:1
#2 0x000056424b402d42 llvm::sys::RunSignalHandlers() /home/jw/llvm-project/llvm/lib/Support/Signals.cpp:104:20
#3 0x000056424b404ea7 SignalHandler(int, siginfo_t*, void*) /home/jw/llvm-project/llvm/lib/Support/Unix/Signals.inc:418:13
#4 0x00007fdd1d728ef0 (/usr/lib/libc.so.6+0x3def0)
#5 0x00007fdd1d78274c (/usr/lib/libc.so.6+0x9774c)
#6 0x00007fdd1d728dc0 raise (/usr/lib/libc.so.6+0x3ddc0)
#7 0x00007fdd1d71057a abort (/usr/lib/libc.so.6+0x2557a)
#8 0x00007fdd1d7104e3 __assert_perror_fail (/usr/lib/libc.so.6+0x254e3)
#9 0x000056424b6c7228 (anonymous namespace)::RISCV::finalizeRelax(int) const /home/jw/llvm-project/lld/ELF/Arch/RISCV.cpp:1013:29
#10 0x000056424b9b9ff0 (anonymous namespace)::Writer<llvm::object::ELFType<(llvm::endianness)1, false>>::finalizeAddressDependentContent() /home/jw/llvm-project/lld/ELF/Writer.cpp:1620:7
#11 0x000056424b9a3bd4 (anonymous namespace)::Writer<llvm::object::ELFType<(llvm::endianness)1, false>>::finalizeSections() /home/jw/llvm-project/lld/ELF/Writer.cpp:2153:15
#12 0x000056424b99f263 (anonymous namespace)::Writer<llvm::object::ELFType<(llvm::endianness)1, false>>::run() /home/jw/llvm-project/lld/ELF/Writer.cpp:324:19
#13 0x000056424b9e4188 void lld::elf::writeResult<llvm::object::ELFType<(llvm::endianness)1, false>>(lld::elf::Ctx&) /home/jw/llvm-project/lld/ELF/Writer.cpp:100:3
#14 0x000056424b6583a5 void lld::elf::LinkerDriver::link<llvm::object::ELFType<(llvm::endianness)1, false>>(llvm::opt::InputArgList&) /home/jw/llvm-project/lld/ELF/Driver.cpp:3497:1
#15 0x000056424b6305bc lld::elf::LinkerDriver::linkerMain(llvm::ArrayRef<char const*>) /home/jw/llvm-project/lld/ELF/Driver.cpp:729:5
#16 0x000056424b62b22f lld::elf::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) /home/jw/llvm-project/lld/ELF/Driver.cpp:142:18
#17 0x000056424b40d05a lld::unsafeLldMain(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, llvm::ArrayRef<lld::DriverDef>, bool) /home/jw/llvm-project/lld/Common/DriverDispatcher.cpp:163:11
#18 0x000056424b2e1570 lld_main(int, char**, llvm::ToolContext const&) /home/jw/llvm-project/lld/tools/lld/lld.cpp:90:27
#19 0x000056424b2e4264 main /home/jw/llvm-project/build/tools/lld/tools/lld/lld-driver.cpp:17:18
#20 0x00007fdd1d7126b5 (/usr/lib/libc.so.6+0x276b5)
#21 0x00007fdd1d712769 __libc_start_main (/usr/lib/libc.so.6+0x27769)
#22 0x000056424b2e1325 _start (/home/jw/toolchain/bin/ld.lld+0x4f31325)
clang: error: unable to execute command: Aborted (core dumped)
clang: error: linker command failed due to signal (use -v to see invocation)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEWEuP2zrS_TX0hrBBkXouvFDs9ncD-BsE6cxjZ1BiyWZCkQZJ9WMW89sHpOR22-mkO30zuICRUGrx8JyqYrFY3Dm51wBLlH1A2XrGB38wdvn1Xls_a4x4XG63a3yQ3mF_kA5z58B6aTS-P4DGwki9x_4AmCu51z1ojy0o_sDjN51RytyHT5zpAR-5EOGhefTgFojUiNR_gAVEC4c5tnC0RgxtnGo0LiuSNUnLyi7JRNEVDUugSBNKKYdEAOFJGIsSsXrEQjkZf9z1iNQYL5pIC6fj016Zhiu8c55bj0g9DeJ0jBedVAqz7yY-oV4t0hrtjILwiqb4P4huvDGqPXCpEd008d9Wcb3H825wMFcCsbVSAs-1cV4o2cRJSupvYOfNsEd0E02wuMXzued2Dx6xtZWuvWMUkVqJhQogNUZ0czA9ILr5eh8g1F0_P1rzFVofHwWim5vtBtFNbdsDopvPH29X_1i0xyNidUISGkDupPUDV_jOSIFR8YFrox97MzhUrINNWB1njcNOaq7kv-FzcC6ipdQe0QoHGwQD4vopLlBOvmJEP2CKEVsjtsbumzwiWuCOSwUi-P3T9qa-vcFuaHrpMcfNsA_eN9Zjb_DB-6MLy9KgYC_9YWgWreknpd8Lls4N4BDdYK4FlrpVg4AYla3l7oAb3n7zlrcQ1r71vP2GxdAfR8eTBSLVJ2v2lveY2_0Qgti9YOXvvTs6BM8_OM-9bPG8x6A6RlX0GZ7_C8-3r4IsFjEImlO0zO2gveyjnpPv4wc_B3uGgOiGJk-vJozfSyVM74-ngJ2TRIicLUyUbDBfmCHsL4woI5g8EEJIlqc0bVKSZdDi6MYYV-7RjYNPVmofffMleArR8vyR5fc747wF3iOaI7rCU_i9tg_GYImCbodjiC9EN3_X8iG8kHvNlVtI3SJWl0mFWE3pxDq5Zs2LCl9RHAH-4FoosIiWYR8hWv9eXhVhYctOtOgVLSpS-pIxPw_6gp1DtHw3rxOhU_ZIg6HIxIhdMUqBF_jaMtFbK-zkXurO7Hy00gr_TwyWJuE8SNjEL534FZ0QiShoCR3B0RqbwdknUCWbduHMIkf0A3lgAjqCaDVhZJcYJS3S9lWMqijS9oyRX_MQLcGWSwdvYCPaZ2yKS6SEZAXHvAm58zUkmmUFPyOV10gpMLzbjUf87gjWGrsLSfsNwCmwM3B1ERR5W1BaBoynEwZr3oM7xn1e_dJZ86ePvrCdItGwyy-TU9VU3RgdPyP6Tys9WMRW531nmrh8HN9sN18ej4DY6iKFgRaSaw3OIVolIfo7rhwgdhN_z2XXQlhwbg1H0AK0XxntIZjgTVv4rH8kelKeU4JYXUzCL_NbxVkj0r9c-C3E0u-tyeoHSmmSxZSZTVIvc2ZVdTRnf5lUO-g_p47RkH6TUwBfpt8K0qQsx4JurBQDK9WNg_uA8xncoPzvVRa-vF5s5R_iUf3-gCUhXtmkM73MKFnJePYjndtYUK-tvAsuDG9Cif37JT-BHSekj_o4-Nrut9L5XxY_8j15Oa2K6dgP6rNL9YxkTftm4WD_P9Z4zxjX1vLHz9AhtmoP3E5VPK2jsneTLuLuOW27_JIzbSjtXuAcXfNmbiv8s6LwZ39rjFHn_9-tMUnD1SkpJ5HFVfUjSMbPIgfteAdbJX7NAe8X-eICT3RGIevw8uZXTbEyfW_0kzXW0h25bw_PjpeYc08BW17YhUKSFSTYZdePlpgKwqA9FoD1Jfsvxqh46j34k2nevJvCrcY9PSklJoZVSCf0dP5VVwRTmqc4kHtljWaQL6zy3ZpzcRE0xbOYoeSq6qJ5k71eYBV5k6FT3UKTa4wir_BuF-aMPY3dpOU11CKvzqj02muMZlOzZIJ6y3U4IqcdC7NH7PFSymocK8owGDRvFIS7PjxAO3jArel7rmNzow61LIiwZGssxKs6iB9BjSnuNH_qMWAxRHQXrwYBaXCA53fxHQCW-s60sUU1qT_1dGZiyUTFKj6DZVJklBRZkSSzw7IQTdbmTds2ounypBMgWNfxtMyyVLR5NZNLSmhGClIlWZpkyaJMCsLyEoBmrCVpglICPZdqEUJqYex-FtsWyyQtiiKZKd6AcrENR2k0I0XZemaXMQKbYe9QSpR03p0BvPQKYoPu3JYLBhgs4M5YjHISq99dvf34f39DOXnWm5sNVi3f32mZWN8t6X8DAAD__5g0HAI">