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

    <tr>
        <th>Summary</th>
        <td>
            opt crash when loading plugin from path that does not exist
        </td>
    </tr>

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

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

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

<pre>
    When I run the command
```sh
opt --load-pass-plugin=
```
`opt` crashes with the following output:
```
Failed to load passes from ''. Request ignored.
Expected<T> must be checked before access or destruction.
Unchecked Expected<T> contained error:
Plugin entry point not found in ''. Is this a legacy plugin?PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/nmosier/llsct2/.tmp/../llvm/build/bin/opt --load-pass-plugin=
 #0 0x000055711ea65326 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/nmosier/llsct2/.tmp/../llvm/build/bin/opt+0x1df6326)
 #1 0x000055711ea62abe SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f3c90322520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007f3c90376a7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #4 0x00007f3c90376a7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #5 0x00007f3c90376a7c pthread_kill ./nptl/pthread_kill.c:89:10
 #6 0x00007f3c90322476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #7 0x00007f3c903087f3 abort ./stdlib/abort.c:81:7
 #8 0x000055711d21aa7e llvm::Expected<llvm::PassPlugin>::fatalUncheckedExpected() const (/home/nmosier/llsct2/.tmp/../llvm/build/bin/opt+0x5aba7e)
 #9 0x000055711d21ad58 std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&), main::'lambda'(std::__cxx11::basic_string
<char, std::char_traits<char>, std::allocator<char>> const&)>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&
) opt.cpp:0:0
#10 0x000055711d21b731 llvm::cl::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, llvm::cl::parser<std::__cxx11::basic_string<char, std::ch
ar_traits<char>, std::allocator<char>>>>::handleOccurrence(unsigned int, llvm::StringRef, llvm::StringRef) (/home/nmosier/llsct2/.tmp/../llvm/build/bin/opt+0x5ac731)
#11 0x000055711e9bc0c5 llvm::cl::ParseCommandLineOptions(int, char const* const*, llvm::StringRef, llvm::raw_ostream*, char const*, bool) (/home/nmosier/llsct2/.tmp/../llvm/build/bi
n/opt+0x1d4d0c5)
#12 0x000055711d17c6d3 main (/home/nmosier/llsct2/.tmp/../llvm/build/bin/opt+0x50d6d3)
#13 0x00007f3c90309d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#14 0x00007f3c90309e40 call_init ./csu/../csu/libc-start.c:128:20
#15 0x00007f3c90309e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#16 0x000055711d205775 _start (/home/nmosier/llsct2/.tmp/../llvm/build/bin/opt+0x596775)
Aborted
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8V1uP4ygW_jXkBSXC4Ev8kIdMuqIdaVZTmprVPlrHgGO2MHgBd6X-_Qqcyq1qZ1vdtV1KCRvDx3cO5wreq4ORcoOKX1DxZQFT6K3bmMF6Jd2iteJ1889eGvwrdpPBoZeY22EAIxD5gsgWlWT--X6esGPAy6W2IJYjeL8c9XRQBrEvd-vPr3YMqCSYO_C99PhFhT4d01mt7YsyB2ynME4Bse2HEHtQWgocLI6H4nio9LhzdsCIVohWK_yH_PckfcDqYKyTYjVvfDiOkgcpENv9idgDHiYfcCsx7yV_lgK3srNOYuBceo-tw0L64CYelDUniH-Yt8X3YNyaAMpIgaVz1p3JPyZ1YGmCe8WjVSZgYwPu7GQEVuZM-VePQ688BqzlAfgrftPj_vG3h-3TA_ZTO6iAAbfTATs5WheiDvoQRh9Po3tE9wcV-qldcTsgutf669uwHJ39l-QB0b3yfpIe0T2GxIDrScj5nuON4Bb4c3DA5UnkpwD8GYtpGM8ykRVOf4_OHhwMGNxhGqQJkQdGdN_bQSK6P9lUouB5oIjuV2EY47C60GsnpUUclUF0_z-sCSPKCCZHQggpiirLJJQFoyVOYGyL2Na_-vnh0SkTEvs_oziIri-LHLw01gcnYUC0RHSHlQmI1hjR9Q8LgOgv5JiJrmQRur4wz-6YU2glflIHA_pvYISOR61PROZpv-Jj1DtJ_2cgegKqOsZrwigtKDlR16pFdH9cl02ZL7Uy03F5MNP8ga-8XZWJXh633JBjt5hVCRXHTTOG3kkQzbPSulHDqGW8aYg-gaMSzBg0ovvrZSuO2DbPEdtW5QU__xZ8E6QzoP8SuVojts2utFF8hHy97S_h1vUdXHmv3Lwq8cGn-0hI8-ObFfhXL-QYHWq0Xh0R3TtQXiZsWiG2vdJBdQtN1lXHMLTRlRNUEPP1pamZXRYlviCsr01I0AygklfGfxWVLpOP4P3jyY8e5qkOAuhzMDvvihZUx1Dmw-d5QgEtVPLG1up7KUSxxj6ImVyzn0wKuk1_8gq2-2qViJQuixp-PGbZ_NKCV7zxwSlzQGzHe3DRp8-L40QTHKgYoubP7OFmBWhtOYQYuM_f56juA5rdmO7wAFGH2xRuKw1DKyDF72-hNaey_xe5t4tt_t4o89U-yxtSW_PaCAhwteUK_ierclYErbEdw_vwFsMkuTOPtmLZlZFzPY9a-YDY7ufKEZe01uo4vqc0gvPJXr-X1KyE76R2-sUVs-f8zvnknDQp-00mVX5iTnXX7J8SoT9k91-nPzExFsArlp3DQbzv27xYt5zw4gPlPkbl7uZi9Ddl5O9jDBL-LWfucFTFm51tzw_fJOtNQbB9B3a59R_UxCz0baGQC8KLG4XQGwfIKl4KloLPJ14DEaVgN6feVQCkFjXBTRMLh8YHcKHhoHWTeER87qf3SfCUZj_atOoR2xYpe5eXU_P7U2VOcNqjjAr3B82PEX2Z0FOSzGgEpVcRpPgI9EaUj6T4EJxVsUAoLtjlbXQiRVUVeEb9xOupy6q6GMU2FgTyvgVbiA0TNathITdZWecVpYRUi34DtKVVB63MOCm6DmpCOuikLBmHUubdQm0ooYzUWU4JKfNqxdquyknRFbVYt7KsUU7kAEqvIsuVdYdF6hs2ZZnT9UJDK7VPLSSlRr7g9BFRGjtKt0kdRzsdPMpJDNL-ghJU0HITq_y523iJrWYs92PfNxf7cys3QmoLIWBhpU89kzwqHxaT05vvb3oS__8EAAD__9mah1M">