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

    <tr>
        <th>Summary</th>
        <td>
            Bolt crash on windows
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            BOLT
      </td>
    </tr>

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

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

<pre>
    We exploit bolt to optimize a .so file for android on windows 10 22H2, but it seems a problem while generating the instrumented .so file

> H:\path>llvm-bolt libUE4.so --instrument --instrumentation-file=libUE4.so.fdata -o libUE4.so.instrumented
> BOLT-INFO: shared object or position-independent executable detected
> BOLT-INFO: Target architecture: aarch64
> BOLT-INFO: BOLT version: 595d780b492d3de3f5653851e7d64c122472d71a
> BOLT-INFO: first alloc address is 0x0
> BOLT-INFO: creating new program header table at address 0x17200000, offset 0x17200000
> BOLT-WARNING: debug info will be stripped from the binary. Use -update-debug-sections to keep it.
> BOLT-INFO: enabling relocation mode
> BOLT-INFO: forcing -jump-tables=move for instrumentation
> BOLT-INFO: disabling -align-macro-fusion on non-x86 platform
> PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
> Stack dump:
> 0.      Program arguments: llvm-bolt libUE4.so --instrument --instrumentation-file=libUE4.so.fdata -o libUE4.so.instrumented
> Exception Code: 0x80000003
>  #0 0x00007ff7ed609e72 std::_Tree_const_iterator<class std::_Tree_val<struct std::_Tree_simple_types<struct llvm::bolt::Relocation>>>::operator*(void) const C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xtree:183:0
> #1 0x00007ff7ee6328c4 std::_Tree_const_iterator<class std::_Tree_val<struct std::_Tree_simple_types<struct llvm::bolt::Relocation>>>::operator->(void) const C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xtree:190:0
> #2 0x00007ff7ee62c646 llvm::bolt::BinarySection::hash(class llvm::bolt::BinaryData const &, class std::map<class llvm::bolt::BinaryData const *, unsigned __int64, struct std::less<class llvm::bolt::BinaryData const *>, class std::allocator<struct std::pair<class llvm::bolt::BinaryData const *const, unsigned __int64>>> &) const H:\llvm-project\bolt\lib\Core\BinarySection.cpp:58:0
>  #3 0x00007ff7ee69fdd3 llvm::bolt::BinarySection::hash(class llvm::bolt::BinaryData const &) const H:\llvm-project\bolt\include\bolt\Core\BinarySection.h:431:0
>  #4 0x00007ff7ee63f6e1 llvm::bolt::BinaryContext::generateSymbolHashes(void) H:\llvm-project\bolt\lib\Core\BinaryContext.cpp:1118:0
>  #5 0x00007ff7ee64789c llvm::bolt::BinaryContext::postProcessSymbolTable(void) H:\llvm-project\bolt\lib\Core\BinaryContext.cpp:1340:0
>  #6 0x00007ff7ed54da20 llvm::bolt::RewriteInstance::buildFunctionsCFG(void) H:\llvm-project\bolt\lib\Rewrite\RewriteInstance.cpp:3238:0
>  #7 0x00007ff7ed53d8c8 llvm::bolt::RewriteInstance::run(void) H:\llvm-project\bolt\lib\Rewrite\RewriteInstance.cpp:732:0
>  #8 0x00007ff7ebb9590a main H:\llvm-project\bolt\tools\driver\llvm-bolt.cpp:243:0
>  #9 0x00007ff7f0bc76a9 invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79:0
> #10 0x00007ff7f0bc758e __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
> #11 0x00007ff7f0bc744e __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331:0
> #12 0x00007ff7f0bc773e mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17:0
> #13 0x00007ffbc8a37344 (C:\WINDOWS\System32\KERNEL32.DLL+0x17344)
> #14 0x00007ffbc95826b1 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x526b1)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWF1v2zgW_TX0C2GDIvX54AdXcabFZtKizkyxTwZFXtmcUKJAUomzv35BWYm_4kG7aBdjBLFIkece3nPvJWnunNq0AHOUfEDJzYT3fmvs_FE5tzVaiUll5Mv8G2DYddoojyujPfYGm86rRv0HMMczZ3CtNODaWMxbaY2S2LT4WbXSPDscEUzpR4poiaveY-WxA2gc5rizptLQ4OdtmL6BFiz3qt1gvwWsWudt30DrQb7ZQOQGkcX4ny3xR8QWKCk77reILbV-aqYDQ62qP5ZxmDWdHoBOGtwr004HUHbzNn5WS-45npoDxOyYycH0h893D9NP97efEVtgt-UWJDbVXyA8NhZ3xqnBgGoldNDKYB52IHrPKw1YggdxHe-B2w14zK3YqjCwtxC6eehI4yuTQgM_gXXKtKGdFInMclLFBZVMAquTNGF5EkEm01hElMYZlVnEr8DVyjqPudZGYC6lBeewcpjsyJUJwsJevhaeg7Ybyxu8BS7B4v2quX9DIrsooyR8QmCYunbgjztPTXxbfL3_dP9bsCKh6jdYtbXBz0prXAF23qquA4lra5oheCrVcvsyw384wNO-k9zDdJg4dSCCLi4E8SNAh5WfXVkPtLzSYT0WtBFDvODGSLjmL2NFGD39q2-66bBgh9hNY572qXEWeldQpHKj1SnXatNOGy6smdZ9UDWkVWva6S5Pcae5r41tDjhf7paL1RK7vmqUxxwHP1nojB0ydut950K60FtEbzfKb_tqJkyD6G3Im_Fr2lkTYhjRW-VcDw7R25DUWLVC9xIG7wrL3RZXXDx6ywUc-W_luXjEsm-6YOmtm8zw8PkyBgW3m8ERgQ_-v2btciegG5Qsg5JsgckuHyKOsMMojCgjIdIJIVldZyBTUkBGsfMyLIwt1g8WYC1M6_xa-VC3jEWsFJo7dz7qiWvEysBG-PN3TjWdhrV_6UKwvA4aBBlGBb_sn76-BSFiy9e_8MJ0o3m6QDR_MkoiWuCBGi739fHV77dKg8OI5rs8RbRASfm7EtY4U3v8p3I913jle6kMSkpKojCgNE3Tt8q_oKT8s0RJ-WCMdmHmamhG8YwWM0YixlBSjlGCknLnLQT_RjlDbHGUz4iy6Ni1kDKai_gf7dpp6PkH-rYgF76lp76lIo3Tdxf9YSiRq3053Hdtudsimu89fX3OTci1vQ8QTUP5PtOm4d2bYN8JswgwfTucRiRer1Xr0zj0nWurwbkfBw_yXdActrYxus7NdFzZHzYzPLy7kNew2jvsNYLG08tJ3U3KwUZSalUNIWKD4idizUQXymuSn4of1Gen6he1lOwXq_9diznE7tjx7rq2iC1iFl0uKz4rGHUK0d9QLE3rYTd2jcdKWL00ldEfuduGTe0tl39UgxF71CCKondUSE7pxlleiO-l2xnnv1gjwLk944dwkPh5hFlMLgmnJ3tdEktOyZVK-WyVh0-t87wVML7ulZa3fbs_WJW3v_0Y2xHz8PSKPlJmlL3j4-yUMpO5yL-fsu3bn0syY_SSY37MsaqKpCAcN1y1f2_Rj7uAtOoJ7Ouw8HI0RmN2aaw4MlaTSmQpL7Bqn8wjrAebN3ubHCXl-tnYx7DBoKQMlpwVKCmfxKtlYf3Qdp5b33dvIw5t2IUtumlMO1OtDg4oLrd5ck4pyQGv105YP04emK0dbH8xO5rnl_Sic3px_B69X0yNnRe8QI2eU8sYDJFTfn1Y7bF-Pq2A_1omsktOR3tLJXLOMhbH4bwznoO-fbq_-fxthZJy9eI8NIyipPzX8uv98o7R2c3dHaIfwv2OxXE4Hp1Ax8fQRZLTtIreh_736mH5-wDdeqn1TGo94CZhyhvuRM6ZLFjBJzCPMpKSPItYPNnOeZ1keUqiggJNM5KRIo7iLK9qHlUE6mii5pTQmEQ0JgVJWDyra8qTmsUiK-okYQLFBBqu9Cwk5czYzWS4J82zgqbZRPMKtBt-TaE03OsQpSi5mdj5Pof7jUMx0cp5dwDwymuYfwg3oP3N6vDjyaS3ev6_39wGUv8NAAD__8fljdI">