<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/62838>62838</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>
    It appears to be a recent regression.

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

```
[547] % clangtk -v
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 287dd0142c08caad5b32628f3842dfd5d5c59d03)
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
[548] % 
[548] % clangtk -O1 -c small.c
[549] % 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 '@main'
 #0 0x0000562fd6be9a10 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x3ac2a10)
 #1 0x0000562fd6be75bc llvm::sys::CleanupOnSignal(unsigned long) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x3ac05bc)
 #2 0x0000562fd6b37098 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007fe89058e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007fe8905e2a7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007fe8905e2a7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x00007fe8905e2a7c pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x00007fe89058e476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x00007fe8905747f3 abort ./stdlib/abort.c:81:7
 #9 0x00007fe89057471b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007fe890585e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x0000562fd63b7d87 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-17+0x3290d87)
#12 0x0000562fd63c94ae (anonymous namespace)::MemLocFragmentFill::run(FunctionVarLocsBuilder*) AssignmentTrackingAnalysis.cpp:0:0
#13 0x0000562fd63d3d0b llvm::AssignmentTrackingAnalysis::runOnFunction(llvm::Function&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x32acd0b)
#14 0x0000562fd6548a2e llvm::FPPassManager::runOnFunction(llvm::Function&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x3421a2e)
#15 0x0000562fd6548c79 llvm::FPPassManager::runOnModule(llvm::Module&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x3421c79)
#16 0x0000562fd65495a5 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x34225a5)
#17 0x0000562fd6e4c3cd 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+0x3d253cd)
#18 0x0000562fd7de3d99 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x4cbcd99)
#19 0x0000562fd8d50169 clang::ParseAST(clang::Sema&, bool, bool) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x5c29169)
#20 0x0000562fd76486e9 clang::FrontendAction::Execute() (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x45216e9)
#21 0x0000562fd75ca88e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x44a388e)
#22 0x0000562fd7711c2f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x45eac2f)
#23 0x0000562fd407cf73 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0xf55f73)
#24 0x0000562fd4078d63 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#25 0x0000562fd742742d 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
#26 0x0000562fd6b37560 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0x3a10560)
#27 0x0000562fd7427f9e 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
#28 0x0000562fd73eebca 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-17+0x42c7bca)
#29 0x0000562fd73ef69d 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-17+0x42c869d)
#30 0x0000562fd73fa6bc 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-17+0x42d36bc)
#31 0x0000562fd407b46e clang_main(int, char**, llvm::ToolContext const&) (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0xf5446e)
#32 0x0000562fd3f8dea3 main (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0xe66ea3)
#33 0x00007fe890575d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#34 0x00007fe890575e40 call_init ./csu/../csu/libc-start.c:128:20
#35 0x00007fe890575e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#36 0x0000562fd40735d5 _start (/local/home/suz/suz-local/software/local/clang-trunk/bin/clang-17+0xf4c5d5)
clangtk: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 287dd0142c08caad5b32628f3842dfd5d5c59d03)
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-999495.c
clangtk: note: diagnostic msg: /tmp/small-999495.sh
clangtk: note: diagnostic msg: 

********************
[550] % 
[550] % cat small.c
extern void a(int *p);
int b;
int main() {
  int c[1], d = -1;
 a(c);
  while (b) {
    c[0] = 0;
    c[d] = 0;
  }
  return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWl9z4ygS_zTKCxWXBPr7kAfHiWeym9mkJtm9uicXgrbCRQYdoEwyn_4KJNmS42Rm9tZzV7VVM7ENzY_upvl1C0GNEZUEOAuS8yC5OKGtfVD67OsDSK5kZdqTUvGXsyuLaNMA1QZZhUpAFGlgIC3SUGkwRig5C8KLIJx3fxdq04gaNLp8bmqlQQdkjh6sbUxA5gFeBnhZKV6q2s6UrgK8_Brg5Yfs6Z_kw69lNkYK0rD_1_1MzpM4C5ILFOAEsZrKyj6i06eu1_9GT6CdQijKZuEsRAHO92YW9qEtZ0xtArys66fh47TR6l_A7KwSFuE84zyMYszCnFHKk5LgFOdrkseYr3nCE5YUPCQBLrq576muwDo7n_N0lcanrXyU6os8rYVsn08r2fZyDxooRxvFoXbSjTLiueu6ksbSugZ-IbzDnF6K0TrAS9N-PR2-q2bdfnUOK4XsBi5VKzliVHLBqQX0YbFAogOjVijZg7VGO0hROicwFuBlr-pORbyMoiNg4g7zDmpgFvhfArbYqrZpayvcKDJHs4CcB3G4SeO9Kd8T8lGVD1F1qG0baTcROmXIbGhdz9hIsjgoWb0S7rvfWV6j1vYL1RDgpRcuW1HzvRDdBa6QrG457BrmF_cBXl5JC_qJ1p9oM3sIyDyK8szNWSpVIy9J5gGZj8QCsvgVXu4DvEB_0Np__ub-3GsqrAnIZTdCPYGuaWMCnA_i3WeBmJLGoiA5_yLsg29FAblArfQcw5GQNiDnHv1gx_g3-s2LRKnr6FTwDQdV_0jr9U0D8kquVUAWU9zLILlwls-NAe1iDQVpOBjlgKSSl5vGvgQ4p86c0m1pnKE1FTXwntZury_nd5fItOVGWERR2VZIQ6O0dYz4Y_ziVs2YFkyAl4hKp6dfQ2QfADFNzQMqKXu0mjJwCjUaGq0YGAMcGdXqrtmNpMYoJqiLb91KZJgWje1VvrOUPSLebhqnmW8KZ0FY3GpVabpBVFftBqR3wy5qr3bbsI_HQbs3AjpymAFZgFoH5BI1VBvQiFoEkiO1RmtRQyeJneRCcUAVSNDdxvc9xPV8bqUUskINNQYFOFu2kvn1unUNn6ikFWi3MEo69mxrcFKDLjjrzY4PYc19nnPWumBij65vLmn9YoTpIdfDdAHOHDdQId03j4kCTEIUPodhGCYpXvO0hIJG4SgczUsfTrdaSOt9f98tYL4T0vTLShmrgW4CnLpFdCGKC5ejRh5_UBvoSOFtahia_MKdWt3Kxz4jDG1RFuDz8JlQhmkUbvOUsyXasyVLSnbIlkUNVLbNjbwTlXTT5du9VStZHV_zMCnZRHM81ZxkYZGjhdszn4E5bnrpVP1IJa9duOS9hycyCyUtPNsZa9zeCP3_7RSknyJbQ16ESQ4JDgczfWY6kJNqUbKZUbPUKx7jBE8dHk8xAdOModWqsb4YWD2Kul6JTVODC1G_MdAswEvZWOepsdiMBWQexwGZZ-kOP_kefEeYktbvIme5SxYjb6SHkMfD3oXLiz24bN-5cZaiyvg180imj7TlzP96MRxcsll2ZRJeaioMeGzsEtrIB_kUOouzNUG0dBTtoSzvls83ddpFzuIdQvEKISrRStarWlG-4spxgscS0pvrmjemYrSDi6LMqdQvu9tm4Z61CRTpj4USKaBIt6HkMKd7l5QZz7M3M_okFeIF2v8dpa37-DNZ9UBB8P5s2wLhiIyBi5Dn2cRfU8YgrIipSxw5lUq-bFRrkKQbMI3n6qKz6RNsrhVbalq5_bgUdd3zdysDnA-J6Q-qrxUz564-c1QzdzbuMs2QaIY885ptnHpkqh4nPCxH6_E23FajGzkoNMk1u8b02DyNKeNhOfF6PDEriXOKYWTW8tYl9SGn__9YEuOIYphYkuxbwrLiOyz55CuUiR1D08-wgmXFxIp0z4oiocnIihoqyl76AmZnz9WmmUT-_8QWnNBkYks2sQViRhjvCthOt8uNsOeUPYLkN61tWhvgfNR9IWgllbGCmUtZCQl9KTYS-QiUg74DqtnDTeNiz3Tk9VrU1bMfQH5Dqjsc-IbQNZXVIZGd1--sFrL6DOtp87AY8z3A3gnzfvfs8bxujXiCz7BeSHtrdUAWu-6ndc8vS1HD3YuxsHGEjxfIWN71tFL8u4VVszfSlbjNFy0srIZCdzSIw5q2tV1xqMHCNwZ2SebI8cVxQhifxFc-jq-MA-FFccCtCyVNuxk2fVdw3msqTXek8bsUe4E3v7vvC8_j75uYlYwXUw4oxnblPAmjdGLXrXt0m9_dT7W-gw3tA7FUqt59HlX_hOEiSif648kTWJbGeQoT_ZfaeXcb7x0XPANrLXhNj-vwBEcpTBWelGpZwmiew5Q7ulNSf-4nGUxUHnZt_raFx4-imJI8n-RDPKmnsiyKGF5P2LdTf2fbk2L0tSmvbO_Kp6OuEFCG1xNjJtVXHGZsnRHEWLTqHv9HCW-uNX1xzEsW7IHqgaDnPS1O2_ACPSnBj2_TOknWGZmYFO-ZlPOUoGFRFtG937sjw-42tK7_AGZVn-4P2LeXhhxGz2SjRFUgrsUT6IN1Lp6UUVmMsxhz76QR7nAEs9Lez76327nbpw1G67qk7HG1lk7TXTx1c_extYgWarOhku-TwMH13GYn5ZMvrSd5aZdz-3w0SmerFXt-jqLuR0mNYC53CaeT9-JE2DWsbH_w2HXvwdHaLbxVetTvROY70p1vn6O6IQHOaropOQ1wtnMVzofjmV9UeXg90v2DlCQdH2cdOi7pej638o6uoX6ZuPP9pTv2OVEUJmk42QXZfritiwn1_u3CxS3ArKHazsJ342Ja_BCAktE3Hec5nL7KtoM3J4S_N9AJvFUIvyM6n5QiP-FIIcYsKxmdBFex56N1WvAf9dEvqjRvO-gXVV4LY996DHhF2duYaKhw4dAfwHyvT_vA-emezdNiUnpPD9kzsqZpyd6y4mL0fVJ0HKg23lqRn-jZ49Y2mJN0dFTufBntFQJlnPYUOFQ3gy2eeuY9cXw7zR-1nonjdFJvTk_8yTrnQAnyJ7FH1APSFOikrtp_LZAlvAjRalWL0rE41XblapPV9oyYmfb1KXZ_Tn5okH9Nm_jj93Q3a7w_K8Qh8mOEFHZ_ou6rQz_16N2xNHageMfx-28LOtCJKYesOAhOssKpvcNO96KOJDxBHepRAydmCd8dE43esoPWSm9fcaJ1_wiFWL9Vu9e8yL-zhmfhQp0Dikjs1G0NoNMnZBUyAEiMnmWKv_eNk5GDpbLuyRXx7bka2pjKo_VR8V_8G90E6l_Bz-_v54uP6P7jJVreXF_f_OPqtw9oeXV9eYfub3zz-e8f0OfL25vP99sX37eHXqHnxrHZm6_RtwIakC-0gCNqt5Df5wG8tJvGedMlltOiKOIiOXAV5EcRzMOPL8NftRjJeZKEr-_K7NoYtdMrAvBsQcvuaY92eQcFeN74p4PzTsa1lZNffZLyGSfr25G_G8KC5DwKkguXrri_FnIabYf6GdgYGqEvD8LfFsjLPTTksTrNyQUKR2O6Ln6oK8guhq8abKvlqHfbt724dsLPCC9IQU_gLErzOM1JHMYnD2ckSaM8YmFBcqBpGZaM8DjBnOdxCjlNT8QZDjEJExxFCUnjeJaEUUhxGqcRACaEBXEIGyrqmSOTmdLVib9YcpbinOQnNS2hNsPVPn3mGadsKxPEYS2MNbthVtgazjoy8zdQwCAl0ROtBe8IkVp_AcTTJIeyrSohKwSSlo49A5yfVt3rsz970QadtLo--_M3abzN_wkAAP__TB9hqA">