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

    <tr>
        <th>Summary</th>
        <td>
            clang crashes on valid code at -Os and above: Assertion `idx < size()' failed 
        </td>
    </tr>

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

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

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

<pre>
    It appears to be a recent regression.

Compiler Explorer: https://godbolt.org/z/TTaPb979W

```
[539] % clangtk -v
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 33b69b97565cf19f8e11173fd851e56ce07656f0)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/12
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/12
Candidate multilib: .;@m64
Selected multilib: .;@m64
Found CUDA installation: /usr/local/cuda, version 11.8
[540] % 
[540] % clangtk -Os small.c
clang-17: /local/suz-local/software/clangbuild/llvm-project/llvm/include/llvm/ADT/SmallVector.h:294: T& llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::operator[](llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::size_type) [with T = int; <template-parameter-1-2> = void; llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::reference = int&; llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::size_type = long unsigned int]: Assertion `idx < size()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name small.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/local/suz-local/software/emitesting/bugs/20230511-clangtk-m64-O3-Wall-Wextra-pipe-fPIC-build-141720/delta -resource-dir /local/home/suz/suz-local/software/local/clang-trunk/lib/clang/17 -I /usr/local/include/csmith -I /local/suz-local/software/local/include -internal-isystem /local/home/suz/suz-local/software/local/clang-trunk/lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Os -fdebug-compilation-dir=/local/suz-local/software/emitesting/bugs/20230511-clangtk-m64-O3-Wall-Wextra-pipe-fPIC-build-141720/delta -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/small-d75a82.o -x c small.c
1.      <eof> parser at end of file
2.      Optimizer
 #0 0x000055810bf017b0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x3a907b0)
 #1 0x000055810beff094 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f9becb68520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007f9becbbca7c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x96a7c)
 #4 0x00007f9becb68476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007f9becb4e7f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x00007f9becb4e71b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #7 0x00007f9becb5fe96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #8 0x000055810d574914 addMask(llvm::SmallVectorImpl<int>&, llvm::ArrayRef<int>, bool) (.constprop.0) SLPVectorizer.cpp:0:0
 #9 0x000055810d5bae8f llvm::slpvectorizer::BoUpSLP::reorderTopToBottom() (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x5149e8f)
#10 0x000055810d5efcbe llvm::SLPVectorizerPass::tryToVectorizeList(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, bool) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x517ecbe)
#11 0x000055810d5f3c4c bool tryToVectorizeSequence<llvm::Value>(llvm::SmallVectorImpl<llvm::Value*>&, llvm::function_ref<bool (llvm::Value*, llvm::Value*)>, llvm::function_ref<bool (llvm::Value*, llvm::Value*)>, llvm::function_ref<bool (llvm::ArrayRef<llvm::Value*>, bool)>, bool, llvm::slpvectorizer::BoUpSLP&) (.constprop.0) SLPVectorizer.cpp:0:0
#12 0x000055810d5f4fb5 llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x5183fb5)
#13 0x000055810d5f9261 llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) (.part.0) SLPVectorizer.cpp:0:0
#14 0x000055810d5f9c12 llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x5188c12)
#15 0x000055810d15a076 llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x4ce9076)
#16 0x000055810975839a llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x12e739a)
#17 0x000055810b8ae683 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x343d683)
#18 0x000055810973d926 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x12cc926)
#19 0x000055810b8ac441 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x343b441)
#20 0x000055810c160380 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&) BackendUtil.cpp:0:0
#21 0x000055810c1639b2 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x3cf29b2)
#22 0x000055810d0f6769 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x4c85769)
#23 0x000055810e05cb79 clang::ParseAST(clang::Sema&, bool, bool) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x5bebb79)
#24 0x000055810c95beb9 clang::FrontendAction::Execute() (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x44eaeb9)
#25 0x000055810c8ddb1e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x446cb1e)
#26 0x000055810ca26446 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x45b5446)
#27 0x00005581093b0be9 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0xf3fbe9)
#28 0x00005581093ac8b3 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#29 0x00005581093adf50 clang_main(int, char**, llvm::ToolContext const&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0xf3cf50)
#30 0x00005581092c2c33 main (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0xe51c33)
#31 0x00007f9becb4fd90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#32 0x00007f9becb4fe40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#33 0x00005581093a70f5 _start (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0xf360f5)
clangtk: error: unable to execute command: Aborted
clangtk: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 33b69b97565cf19f8e11173fd851e56ce07656f0)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
clangtk: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clangtk: note: diagnostic msg: /tmp/small-c39741.c
clangtk: note: diagnostic msg: /tmp/small-c39741.sh
clangtk: note: diagnostic msg: 

********************
[541] % 
[541] % cat small.c
int printf(const char *, ...);
int a, b, c, d, e, f, g, i, j, k, l, m, n, r;
int main() {
  int p = 0, *o = &p;
  if (d)
    p--;
  if (g)
    goto q;
  if (b) {
    int x = 0, s = a;
    if (x)
 t:
      if (p)
        o = &j;
    r = s;
    if (d)
      k = p;
    if (i)
      goto u;
    int v = g;
    if (p)
 while (p++)
        ;
  u:
    if (d)
      printf("%d", p);
    while (m)
      if (p)
        printf("0");
    if (e)
      goto ab;
    if (v)
      n++;
  }
  *o = 0;
 int q = r;
 q:
  l = p;
 ab:
  c = a ? q : 0;
  if (a)
 goto t;
  return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW19z2ziM_zTqC4ceifpj6SEPjh1vM5NeM427ffRQFKRwI5FakkqTfvobUrItOU6T9Jq9vT87XdemQBD4AQRACqVa80oAnHnxuRevPtDO3Ep19uMWRCFFpbsPuSwezy4Nom0LVGlkJMoBUaSAgTBIQaVAay7FzPNXnr_oP5eyaXkNCl08tLVUoLxwgW6NabUXLjyy9si6kkUuazOTqvLI-odH1psNvc6zefZtzMlL_OFP_zM-j8PMi1fIIzFiNRWVuUP4vn_qfqN7UFYgFMxn_sxHHkmPVubmtstnTDYeWdf1_e4v3Cr5FzAzq7hBYZgnWZ7N4yRmZZCVKQRBMA_LIo0DiBMG_jyJk9L3SNavvaGqAmP1fEiTbRLhTtwJ-V3gmovuAVeiG-huFdACNbKA2lK3UvOH_tGl0IbWNRQr7gCzcklGa4-sdfcD777Ltux-WMByLvqJa9mJAjEqCl5QA-iP5RLxnhk1XIqBWaeVZclzCwJjHlkPoh5EJOsgeAeepOd5AzUwA8VvYbbci9Z0teF2VrhAMy889yK_SaKjJX9G1Ou6_Lpa_ESqAX3WFdQjy4OXBbP04JuRv_PNU2N7f_2skW5oXc_YyHFxMP-J1bUszXeqwIpgqfOO18WR5x78mQtWdwUcBharjUfWN3bRP4EZqWa3XrggWWSX3HgkQY4wXHjhYkS1gaatqYGlbBoLyHJjdffCpRke4JYq2oABhQNMvPACeeFFz0a2oKiRqo8tHkl_-wqa_4CteWzBIxny4vPv3NyiDfLCFeLCeOH5S3xW6F7ywhL-dtkUlKBAMNiLQ5J3WWgPgluolqJCnXBhvXDLxitr4oXWoKxTIy_xefFgmSM71SOpjWFkjkrKayiGOH59dbG4uUC6yxtuEEV5VyEFrVTGpoC3BVTrj1p3oD2yRlRYsZx3InMLiCmqb1FO2Z1RlIHVu1XQKslAayiQlp3qh-1MqrVknNoNrTqBNFO8NYPIN4ayO1R0TWslc0P-zPOzayUrRRtEVdU1IIw-2mW3soF-sz2_5fa7321UozpxNwTg3VgwR5ixAGGjeFvDs1kAYWi4wTL_C2Era8EVohjhgmua14BLBYAwq4EqTLXBOZRSAbYAgSgQbigXuOQ1YEEb2IURhBsFVkhrYuySC2o5Q7jlDNdwDzUi_Q-uccsB4aa0DoVbyYWx-XklpACEy4aaWwxKCYlwWbaYSWENY7xwJQXCpZBY2XDJRYUtLcINk0Ib1VlHxrTmVINGuOzEdy4KbKxW2gtXBGHjciRmbWfhwUmEsOkEuIEKBCgrcQF5V1Wg7CMuKi9cVUWOcMnkPShaAWauuOg1LWymXL0cMi3moI3lR9Z5V1lXJD4J_TgI8BCWcZNE-HOIv9G6xt_gwSiKW94CLq8vl9jFWxxEwZz4HlkXUBuKsILeP60gv8en-uznxmyymyN8-TQJHcI7040Nej3RCyAczUbYmV7QGnP9qA0076PBSyueVO2npC8WCGQ9mz39OEH7dDV4sF_Y01UPmB_z-fnsty_h6gNcuo3wr_L2EpSSCtfc5oQgQ7isRMfwUAp54SqakVng9motFS44rYTUhjON8L1LdPwH4FrKdjKg6xbhkhaF0rxCeLXd_rFcbj8u_rzYrr4tvqzJdrm-3C5uPnnhKkBYWsBM01qdbfTDxTymKZlJhB8QmxZWgU0AXrgEWdqk2VKlQSFqkI2lskQ2kPaUxFJ-bg1v-A9Q_RjySOgj_8H3fT-O08DPSz-Y5_4oietH3X-5VlwYl4I2fR4blTuKft9KbRTQxlYBZNnXAxlyyfe3JyKPnPsPIc38eX44n1hdgokuUJZ-FqEbXglaf6SiqEF5JB1E64f1jLU2nfru_z0jMjCal1kOLE_SmPg7ZdzmPLHVap6zmZazxIkXkZhMhQunPHNG5wy1xh2Xtne8rt-2QJbQOZssEB0LHc0TVGmn51uFj-bJhHc85R3BvAwRzW259CbOJJ2X4YRz8oRzkL-ZZ5BPeM6nPOMSsuRtPMMMsikC6di3ingeZUGEaFF8ovruudr_smlrL1y6Wv1i2BkHwoVS9PELlCOKJcqlrIedM3N1R6tkO_Odx15d_7mLKeq032ZTIXMKaTnezHW7j0qqHzqXX9ubq-tdTS9VAWoj2408l8bYgjd9530cB1EGabnH2m5jf6oGlCyH8cFiDMQ11UOEMupxI_cPrrg2E7uM4D4M_knrDjyyGNB_FVS9HUeGej9o5sBymEATTKEpQxYxJwuaqn8Df3f2dHZCW6vqT_31GXiO3LfsBLNZe6scpk6GCeP95Mm0w2j2BPT_DpavcYvB1pNfb3CWX9nN1tbkyNZRmccvb4O9JMtbyoW-FOe1ZNMQdU41Z8Pw4u2qvJ-_p2GZxxN_D48wyEgSvIyB6oTz5bHS68ETnjjyDaM1VRf3su7650eQ9DefG0WFLqVqLkUpn6G54rmi6vEkxWLxBXRXG_3kyZWU7ckpK9lwQY1UGwVPvX6hdde0VuIlZbdPn6-goaKA4pyfWHMoBF3Z_QUaqu4uGm7sQdltI-ewLVXm1b4aHduJBeRVdnqdjRaC1o-a609U0Mo65vLEpCFIvbePpsyewEY-Gk90D2Lqz8fXjQUYyuuhiqZaf-qvxk9pMPXLJ5hNHl8r0KDuoeixAf1riO3v8_7HmSJikPmjOtWaIhmbIpvHaZjR32AKR_szfX8V-v-36NiiAYF5mNGJReeTM11KIUnDkeyfZNHVsJE7Oa2lFgVtjVSnUegnvAmDYco_gUAYhUWShhME0qlPh0VG3hZediovX4nb73LKA27PueS_2xgBYSwj0wCTHbkji6LgFYHilAn-N0MXRmEeRcEYOjI51bEg8cPUXapQIcVjIzuNBG1At-52KetFtlXJQmto8vrxI9Ttrib90olxCXPNW6i5AI-k_b3sUOa6dwqLfYjWpuifdIL_3cG2NVOAFP2-bb8rbmC7u80aTSqgpF1ttgXUYOCFiUN4T16z7EbK-nNn2s6see8kr1nzaNZhwQwNin81vD5ZrZHgyBRhlhM0Qs7CPjDpl5gCuzpcfF6IyuHuFB2RfARagLoBqtjtZ1elauROQE9Jl7KAP0C8QNVX2C8QXVFRnSIZFVVGcVHZ896JcDiUyT9zocOUS2FUp_k9fIFyKcz1kVHvy6HGtda5cRfhQ8L_573wfbc6K0mWTypiMj25-mUyT7ITsC6l0F2z29P9Fa07Z_XvA74KfuR4i5vNUgoDD-afKC_TeJ5kE70mp1HwY5bPJ3pdU6VhcbOZSn0DDZ3cGv0zt0c55Pl8Kv_klMYySzKRf60sunt_72PBA7DOwPvfBEYRUMinAk-OViwtijyAaezoG7Fca5G77hqJvNu16fMavr8XRQnLg8kdHpkcUhglSRQlk-jbi3_Q7X548T1V5Ynu-6P7uykT53EUTQoiMqnPszD3c8gQY8G2oVw8d9PGbqnaBejdJdt0jCz71pV316kMyxymTjctuEPK0jxEO6Msg43buz-9QX2q31EasjyGSDZKVBkqFL9_5oqFZEdiFWXs926zw9q92uqRdMAdX1I9s-i7osvK2B-jO33hmBFGWBgiq8B7ygFxwMLJsWr_snD34qkssje-4yNZkU11I8c8IfLRdmunbbWhymzHir52FYimq4RHjjD3yxj1_N_XlolfHm5nh_fsXrhA7rW5_dIJmteAjETQbxfEZNNQUbgWrVwqA8Xzs_v21nKI0LupQ98WKjrH-PA-s9OA8L0bA0B8FCWz_9vtsiNshbQ14gIdWhVQoyvHbXCn_8KfURvz0E632GwWy49o8_ECrT9fXX3-dvkff6D15dXFDdp8dsPnX_9AXy6uP3_ZeLsmtutT7XCptpHp2Za4PYEC5NrCoEDU7Fm-DoFplwULs3kUTDpWf42Dvn27GX6XMeLzOApOtOjuxxg10w4SLgxqFRemtNWFzQp9Jh6yx2w2c4fx8wO1aw_OXaKxH4X9cKdWd6aqXPuH_fjLfty5FGQ_3DHGnaHUhN2Qu1wimg_jCDmxXMen71pFyUK6Xx5J2v10hHhpN3RxeFOPEGoxfkJRTSgqaST6-wlRfiRDL8XDQQrtvtLRxN3UhwP_gxcidCBoJwLY__b6_DXhp9ywPrFGccTizlG2Jyj5EaXTt5sSCoPuHYPqBIORtN9veQ3D2Ln7c6THaHo3Uf201Htf8wjxSFy4v5aoHXuZpduv2xwxeA7PMWPfcc1OaAanoKH5Ccr7I0ox6H-g9Oar_dedf_qH5xbiv93gweGt1-0hqo8NaOXYP2W9syEvXDs2izHvQcbDVXmviBlRKDCdEqNJe3H3_-bkQ3EWFlmY0Q9wFiRpmIZhRtIPt2dZnPtBmJZhQUlOScjSpAgIi4okpCFJ8g_8bNdvF2RhGqUzGhWBn_o0zZM8y2joRT40lNczm0pnUlUfXIv0WUKSJP5Q0xxqvftXOerM5VvXyBf5NddGH6YZbmo461O566UGjaRA97TmtkQoAFHjGgpdrsjlPbypHRx96FR99uv93k6f_wwAAP__hyfpjQ">