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

    <tr>
        <th>Summary</th>
        <td>
            [Linker][Opt] opt delete the `main` func of llvm ir
        </td>
    </tr>

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

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

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

<pre>
    ```llvm
define internal i32 @func() {
  ; Function body
  br label %b
b:
  unreachable
}

define linkonce_odr void @main() {
entry:
  %call = call i32 @func()
  ret void
}
```

It will delete the `main` func and then the linker can't find the main  symbol
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8kk9r3DAQxT_N-DJkkcf_ooMPWYyhECj01lOR7PFarVZaZDkh375I7tIlhYLBYp70-M3MU9tmLo65h-YMzVCoPa4-9K_fvj_LrukK7eePHlpxfNa-XUEMIF5mXoxjNC5ycMqiqQihFsvuJqBnIInQnY-riFCdcdzdFI13mBzvgg5olWaLQI0-ihqql7u8u8BqWpW2fJSgG_4cHiGscb-8m_iHnwO-eTMnkqsy7jMJuxg-HvyBmklZi1ANmA__dHG_GThm588Y98E8Un2J-G6sxZktR8a4MkJ78LQCkzcqN6e6y2LC54CTckBdxMUcIqYXiNvHVXtbzH01y0qqgvuylQ1RRWVdrH2nl4qqRdUkmUXJc_u8qLZe2oWXspVcmJ4EVUKSKBsSZX3SWnWilDOpSiopa6gFX5Wxp7Tckw-Xwmzbzn3byrIr8nq2nA4ix--YRSBKYQl9evOk98sGtbBmi9tfl2iizbF6zf1BM0Bz_nqL0Azob_F_4_ELJhs0odiD7dcYb1taG41A48XEddenyV-BxhzI4_d0C_4nTxFozIwb0Jh7-B0AAP__6FDbbA">