<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/76231>76231</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [RISCV] Incomplete llvm-objdump disassembly when using LTO
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          andcarminati
      </td>
    </tr>
</table>

<pre>
    I detected the following problem related to LTO. Considering the following use case:

A simple C program :

```
int __attribute__((used)) main(){
}
```

If we build it with:

```
clang  --target=riscv32 -march=rv32imafdc -mabi=ilp32d  -O1 sample.c -o sample.elf 
```

We get with llvm-objdump:

```
Disassembly of section .text:

000110d4 <main>:
   110d4: 01 45         li      a0, 0
   110d6: 82 80 ret
```


But, if we build it with:

```
clang --target=riscv32 -march=rv32imafdc -mabi=ilp32d  -O1 sample.c -o sample.elf -flto
```

Then we have:

```
Disassembly of section .text:

000110d4 <main>:
   110d4: 01 45         <unknown>
 110d6: 82 80         <unknown>
```

It seems that it is related to the ELF attributes, under LTO they became incomplete in the final elf. The disassembler cannot decode because the feature flags are not present in the MCSubtarget.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VE1r7DYU_TXy5jJGljxfCy-SmTcQSAn0hXYZZOna1qssDdJ1pvn3RXaSlxfCLErpMEiy7tHhfh6Vku09YsPWt2x9LNREQ4iN8karOFqvyBZtMC_NHRgk1IQGaEDognPhYn0P5xhahyNEdGq2Brh_fCjhEHyyBmPG_PpiSghaJWTyhvEj46_rDSQ7nh3CIXP2UY3wCcE2_PU_f1pP8PSkiKJtJ8KnJyZ2TOymhIaJPRN7GJX18-WebW9fObbHL8mW9a6DC0I7WWfAElwsDdd90E75HmC1IhV7JCaP0Sb9LAWsRhX1kC-epbCj6ozOd61l8mjdWQoDsHqoIKkcdKlhFd7O6Dq44uSfCD0uzoFzz-MqtD_MNJ6ve3q0SaWEY-teIHSQUJMNHkrCv-nTS855VXFTA5OHOYXy2zsCAGYbkzfAK6jX8PZzdtkVZ-IA_Bf4JsN3AnYcItKV2Jb1dqLMYf9dNf77Yqw6R-GK148D-uzqoJ4_d_X_XQUmD5P_y4fLjF_AnypwBfr1UBAkxDEBDYpyIWz6OO15uL_dn-B9EFOu3eQNxqwE2f4CLWo1IlivQ84q5eMiC9YrB-i6Eh4HBPOeH4yglfeBwKAOBmeKLB3zK1Q0RYTOqT6BiggZeI6Y0NMb9W-H71O7tEK5RFKYRpq93KsCm2rLpajr7XpTDI3UleFK7aXEWm2l4lp33GjUZi32uBOFbQQXshJCVJUUsi7beltX61Zovd20nAtWcxyVdWWeyDLEvrApTdhsN0JWhVMtujSLrBAeLzAbmRBZc2MzT3E79YnV3NlE6ScLWXKzOv9-9_3wB1sf4e5nDj9O_4fUvcAlN-SUstrePz4UU3TNQHROuYHEiYlTb2mY2lKHkYlTpnndVucYfqAmJk6zi4mJ0xzCPwEAAP__vznN5w">