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

    <tr>
        <th>Summary</th>
        <td>
            clang crashes on valid code at -O1 with debugging enabled (-g): Assertion `Traits::nonEmpty(a, b)' 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>
    This appears to be a recent regression.

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

```
[588] % clangtk -v
clang version 18.0.0 (https://github.com/llvm/llvm-project.git 012b148dd9402c6ad58805701863d31fb506caff)
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
[589] %
[589] % clangtk -O1 -g -c small.c
clangtk: /local/suz-local/software/clangbuild/llvm-project/llvm/include/llvm/ADT/IntervalMap.h:1187: bool llvm::IntervalMap<KeyT, ValT, N, Traits>::overlaps(KeyT, KeyT) const [with KeyT = unsigned int; ValT = unsigned int; unsigned int N = 16; Traits = llvm::IntervalMapHalfOpenInfo<unsigned int>]: Assertion `Traits::nonEmpty(a, b)' 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: clangtk -I/usr/local/include -O1 -g -c small.c
1. <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'small.c'.
4.      Running pass 'Assignment Tracking Analysis' on function '@b'
 #0 0x00005628e445f800 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x3c71800)
 #1 0x00005628e445cc0f llvm::sys::RunSignalHandlers() (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x3c6ec0f)
 #2 0x00005628e43a7818 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f04e500b520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f04e505fa7c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x96a7c)
 #5 0x00007f04e500b476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007f04e4ff17f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x00007f04e4ff171b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x00007f04e5002e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x00005628e3c346e7 llvm::IntervalMap<unsigned int, unsigned int, 16u, llvm::IntervalMapHalfOpenInfo<unsigned int>>::overlaps(unsigned int, unsigned int) const (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x34466e7)
#10 0x00005628e3c45b8f (anonymous namespace)::MemLocFragmentFill::run(FunctionVarLocsBuilder*) AssignmentTrackingAnalysis.cpp:0:0
#11 0x00005628e3c503b0 llvm::AssignmentTrackingAnalysis::runOnFunction(llvm::Function&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x34623b0)
#12 0x00005628e3dc8b3e llvm::FPPassManager::runOnFunction(llvm::Function&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x35dab3e)
#13 0x00005628e3dc8d89 llvm::FPPassManager::runOnModule(llvm::Module&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x35dad89)
#14 0x00005628e3dc96c5 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x35db6c5)
#15 0x00005628e46c66e4 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-18+0x3ed86e4)
#16 0x00005628e56def9a clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x4ef0f9a)
#17 0x00005628e66c0db9 clang::ParseAST(clang::Sema&, bool, bool) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x5ed2db9)
#18 0x00005628e4f1a249 clang::FrontendAction::Execute() (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x472c249)
#19 0x00005628e4e999de clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x46ab9de)
#20 0x00005628e4fe9f1f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x47fbf1f)
#21 0x00005628e181dc63 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x102fc63)
#22 0x00005628e1816b93 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#23 0x00005628e4ce395d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#24 0x00005628e43a7ce0 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x3bb9ce0)
#25 0x00005628e4ce41de clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#26 0x00005628e4caa45a clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x44bc45a)
#27 0x00005628e4caaf2d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x44bcf2d)
#28 0x00005628e4cb67b4 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x44c87b4)
#29 0x00005628e181c140 clang_main(int, char**, llvm::ToolContext const&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x102e140)
#30 0x00005628e1731e33 main (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0xf43e33)
#31 0x00007f04e4ff2d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#32 0x00007f04e4ff2e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#33 0x00005628e18157d5 _start (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-18+0x10277d5)
clangtk: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 18.0.0 (https://github.com/llvm/llvm-project.git 012b148dd9402c6ad58805701863d31fb506caff)
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-86de63.c
clangtk: note: diagnostic msg: /tmp/small-86de63.sh
clangtk: note: diagnostic msg:

********************
[590] % cat small.c
int a;
void b() {
  int c[2] = {0, 0};
  unsigned d = -1;
  if (a)
    c[a] = c[d] &= a;
  b();
}
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWktz2zgS_jX0BWUVCb4PPsiylWTGGbtizexRBQJNCmsK4AKgY-fXb4EPiZBlJ06Nsls1Kcc0gUajX_i6AZBozSsBcOHFl158dUZas5Hq4tsGBJOi0u1ZIdnzxWrDNSJNA0RpZCQqABGkgIIwSEGlQGsuxczzrzx_3v9eyG3Da1Do-qmppQLlhXO0MabRXjj38NLDy0qyQtZmJlXl4eU3Dy_V9Yenb7-nT-GUk5f4w0__Gl_GWebFV8jDMaI1EZV5QOePfW_3jh5BWYFQkM38mY88nB3MzM2mLWZUbj28rOvH8XHeKPlvoGZWcYP8ABdBlDGWRz6mCWFxlvlx6gdZErIwKIvYTygpSw_n_dwroiowVs-nLFkn0XkrHoT8Ks5rLtqn80q0A91GAWFoKxnUlrqRmj_1XZ-ENqSugV3xzmBWLklJ7eGlbr-dj3_Lpmy_WYMVXPQDl7IVDFEiGGfEAPqwWCDeMyOGSzEwa7WyLHlhjUCph5eDqHsR8TIITsAT9zzvoQZqgP0tzBY70bZtbbgdFc7RzAsvvcjfJtHBlG8R9bou_ryavyHVYH3aMuLhxT7Kglk2ic18iM0jTftwvQ3QeYXOKdJbUtczOole8_CG57UszVeiwIphiYuW1-wgevcxzQWtWwb7hvnVysPLT8KAeiT1Z9LMNl44D4IstXMWUtaoowznXjifkHnh4nd4Xlmt_yJ19_zD_lopwo32wut-hHwEVZNGezgbyftnjqgU2iAvvvzKzaZrRV54hVrRARBDXBgvvOy4H-2YvqM_OpIgsR29CF3DUdE_krq8bUB8EqX0woXL99qLr6zmc61BWYcjL_FHpSwjIcX1tjHPHs46nxd2teMUlYTXwAbEu7u5nt9fI90WW24QQUVbIQWNVMaC5fugx3pN6xa0h5eICCtn50NkNoCoInqDCkIfjCIUrECNgkZJCloDQ1q2qm-2I4nWknJiQ1-1AmmqeGMGke8NoQ-ItdvGStY1-TN0p2SlyBYRVbVbEJ0R9jH76cVKGGV7JZyDGfLCBcjSC69RQ5QGhYhBIBiSJSp5DT0dnqHu30IyQBUIUP3i6zrDofNLKwQXFWqI1sjD6bIVtPPYnW34TASpQFnXSGGhta3BUo3y4HRQPHqF3bzLhFZpG1H0wfbNBamfNdcD13Kc0cOpF_mFfXQ8kYdDH_lPvu_7cYIziKK4zHx_EpD6eQioO8WF6ay_6l2Y7YkU-bqW2iggWw8n1o02SHFuE9jE6hu5hR4WXgeHHVZZ550b1YqHIV2MbUHm4Uv_KaRpkPn-LolZXYIDXSj1y2O6fGnFPa8EqT8SwWpQupPzxOImQP3SERc74oYkzYIMLexS-QLUQtKzI6WHs8GsDs1CCgNPZkYbuyT87v9uinCYIi39CGLfL2Lsj2p2uepIlqp5QWdazpJO8AjH2LVy5PKMS5JS1JiuOFg_8Lp-3wR5QlLqTBAfCh2lCap0Z4v3Ch-licM7mfKOyjJIyxCRwkLeuzjjLC1Dh3P6gnNQvJtnUDg8swNLYMiT9_EMc8hdC-TTqAtpGCWQvpo8nayDF-jwPUha-_iZBHYk97492y4Xn3CVRlGSQLqzl8UU37VXFBdZaWUgQornrWw1EmQLuulAMe91-gzbG0mXilQWmJe8rgegbIWHszED_EXUjaT60pZCdnnPrY57PB_hfETzlyvcihe44sV-WEzx-3V2O4luxSiQA-r7xuTU2BglOCx8x-oONoaMZkUIE7WWdzZ7jsnz_0eTmJEiBEeT8FATluU_oMnnrhRw9BibfoUWLMsdLaIDLfKExhMtaqgIfR4qhb0-n7aNE_n_E12KhMaOLrGTdxOaJBD11WIv2_WWm0tCH0Cw29Y0rfFwNum-4qQSUhtO9bWouICh5pmQfATCQN0DUXRz29jY0z14vSS1teMHEN-h6rfo3yG6IaI6RrK3-r1RXFRfoHSbR2fMDxgORpgPq-cA51Wr-SN8gXIhzJ1RXrjYdz-WA74seQ33z9rA1gI-XiBtWN_TCv6fFtbNwUhbSzZfFTewHivKySAGJWlrs2ZQg4HvDOyTzInjC1iWQOTEVzKNrzhhUObkiFkXUuh2Oy76vshbKSJ0v4X_U_CDwJvfr4Zi7_TrJoLSL3Pi6JVO9UoS6rMin-p1Z3dK8_uVK_U9bMkQiHafvn-eVP4YGGaFi2GZs-7LgODIkX-prHV38d5jwRPQ1sDpNwhRiimOXIGdUi2CPM8ZuNjRn1V2p2-CgiPyuGqz1zU8fRQlpMiZkw-xu-EsIS-D0kHfXvy9bo-SkpeqvNC9L59O6qGyKIPSUcapvoIsYDQJEaXBeku4m_DmSpFni7zhgm6IGgF6PsCi24YX6FFydnqdAh-XNAkdnfCBTkmRh2j0yiJYdYt3otn9ltT1X0CNHPL9EQUP8pDlMUDZJFPliCn-COpooYudOiqiEOYx66w04TuedKxVZ-iut1-6u-0GJXVdEPqwLoWVdB9Q_dxDcC2ChdxuiWCHKHDUobv0JLvsS2onMe2T7pCQJvlsvaZPT0HQvxREc2qTF7cydVZ0iG3D2gyHfH33ATtSW88bqSb9lmS-R935biPVD_FwWpNtwYiH072pcFZLUVnS32Rx3B_R4ekFhenG49gZxf70hZRQPzvmfNt1J07iRZFTcDYgOD4ItyhwsfcfFy7WAbOGKDPz34yLxDUcIVFMXjVcB-LkRbodrekg_sFAS_BaJfwG6dypRX7BmUIUFTSKnUoKp4c2KjF7r41-k4V-3UC_yeKGa_PaPuAFZO9ioiHchsNwAvOjNh0C59dbtsTMsaxb49EiSYvoNS2uJn87VceRcuM1j_xCy562uIlolhbOPgbnB4UADSK_l3ssb0ZdOuiZD8Dx_TR_2oIGgsiBcveKI0jDAMIQWQ1OKUgZhRA6hdXuemI8IcYsf-dhPM5Z7uqGD3lC5KP12g5ba0OUWU8V_dFZ4MCC4UEkxCmLUc__xM5MU7Y_vJlcM4NSUu1u-VA5bGwQHdZPf8-JuktbeOI2_higIIysvK0GdP6IjEQaAPHJDiP_Z3-NMTGwkMbuJxHbnXahra52l67jcv-pn8lHMsMV9Hy1mi8-otXHa7S8vbm5_denPz6g5aeb63u0uu2aL__8gL5c391-We1kuDt2hZxpizCvXiPvCBSgrvgBhojZsfwRA1hzmm1jjWnB_jxLGCThkU8h3stBb97thb_LF_FlnPu7jz2Ice_DuTCIeOFl_9aV5sV4IpIOraj7wIF68SXu-IRXts-3CcH30qvdaLS_1WEd1Xkw6eP91cr-wgqhjicZedoX1gua2HcyGVyM-4WhxU577EusM3YRsjzMyRlcBEke-pGfptHZ5iKiecowjtIsD8oESijzFJKkwEBTH2N8xi-wj0M_w4mf-0kQzTKa-ECjMMyCOAhY6kU-bAmvZxYHZlJVZ91HERdJ7PvRWU0KqPX4zZq66MCiaCvtRX7NtdH7YYabGi56HOq-ngCNpECPpOasxzJius8XOoRjULRVxUWFQJDCAp-Hs_Oqv4_62Y9EzlpVX_z8RyCdyv8NAAD__0OkBBw">