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

    <tr>
        <th>Summary</th>
        <td>
            tidy crashes with readability-duplicate-include
        </td>
    </tr>

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

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

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

<pre>
    The crash is the same with llvm 17 and llvm 18.
The output looks like

```
clang-tidy: /.../llvm-v17.0.6d1rh74_lnx86/llvm-project/clang/lib/Basic/SourceManager.cpp:868: clang::FileID clang::SourceManager::getFileIDLoaded(clang::SourceLocation::UIntTy) const: Assertion `0 && "Invalid SLocOffset or bad function choice"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /.../llvm-v17.0.6d1rh74_lnx86/bin/clang-tidy --checks=-*,readability-duplicate-include --quiet /.../swfvDB.C -- -fpic -std=c++17 -pthread -stdlib=libc++ -O3 -I. -I.. -I/.../include
1.      /.../ua/include/tbb/internal/_allocator_traits.h:31:2: current parser token 'include'
2.      /.../ua/include/tbb/tbb_profiling.h:126:1: parsing namespace 'tbb'
 #0 0x0000000003f6829b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/grid/common/test/llvm-v17.0.6d1rh74_lnx86/bin/clang-tidy+0x3f6829b)
 #1 0x0000000003f65b4b llvm::sys::RunSignalHandlers() (/grid/common/test/llvm-v17.0.6d1rh74_lnx86/bin/clang-tidy+0x3f65b4b)
 #2 0x0000000003f65c75 SignalHandler(int) Signals.cpp:0:0
 #3 0x00002b7947953630 __restore_rt sigaction.c:0:0
 #4 0x00002b794873c387 raise (/lib64/libc.so.6+0x36387)
 #5 0x00002b794873da78 abort (/lib64/libc.so.6+0x37a78)
 #6 0x00002b79487351a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
 #7 0x00002b7948735252 (/lib64/libc.so.6+0x2f252)
 #8 0x0000000003b22904 (/grid/common/test/llvm-v17.0.6d1rh74_lnx86/bin/clang-tidy+0x3b22904)
 #9 0x0000000003b28eb5 clang::SourceManager::getSpellingLineNumber(clang::SourceLocation, bool*) const (/grid/common/test/llvm-v17.0.6d1rh74_lnx86/bin/clang-tidy+0x3b28eb5)
#10 0x00000000010ea696 clang::tidy::readability::advanceBeyondCurrentLine(clang::SourceManager const&, clang::SourceLocation, int) DuplicateIncludeCheck.cpp:0:0
#11 0x00000000010eb4b7 clang::tidy::readability::(anonymous namespace)::DuplicateIncludeCallbacks::InclusionDirective(clang::SourceLocation, clang::Token const&, llvm::StringRef, bool, clang::CharSourceRange, clang::CustomizableOptional<clang::FileEntryRef>, llvm::StringRef, llvm::StringRef, clang::Module const*, clang::SrcMgr::CharacteristicKind) DuplicateIncludeCheck.cpp:0:0
#12 0x0000000003a4635d clang::PPChainedCallbacks::InclusionDirective(clang::SourceLocation, clang::Token const&, llvm::StringRef, bool, clang::CharSourceRange, clang::CustomizableOptional<clang::FileEntryRef>, llvm::StringRef, llvm::StringRef, clang::Module const*, clang::SrcMgr::CharacteristicKind) (/grid/common/test/llvm-v17.0.6d1rh74_lnx86/bin/clang-tidy+0x3a4635d)
#13 0x0000000003a56856 clang::Preprocessor::HandleHeaderIncludeOrImport(clang::SourceLocation, clang::Token&, clang::Token&, clang::SourceLocation, clang::detail::SearchDirIteratorImpl<true>, clang::FileEntry const*)

```
The first several includes are
```
#include <vector>
#include <future>
#include <thread>
#include <queue>
#include <atomic>
#include <tbb/concurrent_vector.h>
#include <tbb/parallel_for.h>

```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWM1yozoWfhp5ozKFJRvwwgvHjuumJj2d6vSsXQdxAN0IiSuJdGeefkpAYuP89O2pLG8qJkZH-s6vPukEnJOVRtyQ1RVZ7WfQ-drYzZ8gHjpgbJab4mnzvUYqLLiaSkd9jdRBg_SH9DVV6rGhi5SCLsbvWUTiPYm3YZHpfNt5qox5cFTJBxxE4zOJx9_-VSjQ1dzL4onwLSXsEEURYYcAOn9cpFEcJcXC1unyqPTPLHkWtdb8icITdugBwrDMCTtcgZOCsMO96azAL6ChQhuJtiV8myVZ0DEs4FvCtwep8GZ_PjJZNwxV6Id5twYKLAjLXs2_NQK8NHoY-8-N9t-fCFtTYbTzQefWObRhBiVJHFPCEsISShi70Y-gZEHvb434WpYOPTWW5lDQstOiXyFqIwUSxghLaQlSYTHG-u72ent_TV2XN9JToHlXUYutsZ56Q2vvWxcsYgfCDpX0dZdHwjRjCF9HUjrXoSPs0KdVaqG6AvvED1WQg3jwFgSO6u89iAdadE0I7jAURyRe31lTWWgo2KprUHv3dzObS_2c0L4i6HwuahQPjvD9nLAtYTuLUEAulfRP86JrlRTgcf5s63z-VyfRn5S5H-Xj_ira0fmczstWCjp3viB8Lwi7IuxqkdJ56-uA2ktCEfG9kvkop_OvnM5vovAJjxfgUePg9SJ4_SLq4EzODj7P-3ePVoMi7HAEpUK9GHv0FqR3UU34li8I37K-PjtrUXvagnVoqTcPqClh6QtkOmhlv9bq8_zYWlNKJXXVq1mwJDyDnoAvdUU1NOhaEBiU9OtGBZQwHtP4Z_z8w8skY-u83_FDqbsnN3y5s1L7viC-hwohLDtNsvDjaJy3CE1f-DsqtQ_bg7AsVKaVRUi7aRoT8u_R-d-rE8Ku4p-jcYStT9YvLqxf5cs3rf_W6XtZaVB_gC4UWtdb9vkGBv0TA9mlgSJd0YkphGVjtIZhN5JZ3H9egPgIxPJ0vUzXK57wmB6PFp03Fo_WUycr6AklEq-XL8-XZykXPEupBelwjIGSebIc_orImSgZXEp4lk4cWl0AFZBmFPJASR8CpZBmE6DkAmi1gIQej9AT6THQ4DGHX5jHygUkE9T0EpWt2C8g2IpNILJJynLG1vHykwtlAJ1oXV9ozTBf_frcum9Rha1_KzX-u2vyvpzeP73YjubGqJ5px8Pr0z0Lhr94FrbohGEWMUKyTs49G68GgUdO3D8MQPEIWuAVPhld7AbaDK6-5eQYmvFIHmjow0iMu27_fMjcDNy6CwfS6z0YPFlceJIv8_RvekJYBtrop8Z07kTIIU69-JURoFQ4jUf66kedNHovLQovH9-MwLlzZ8Lv_flyHpYTQd57K3X1DctTaUzW7mqwA_g30BVeSjvnTSP_C7nCr21QDYrw3cX961p7-xRU8OsPlL8zfIb1xRSdwmdHtpf5teJLZU9Wg_BopfNS_Evq4jcTPWVtWCZ8VZwru7vb1SA1Fv_k6fPz9LmENCRvQkh8mt1Vkq0mhHRnsbVGoHNmNHQ4qv9AKNCO1fPV3jThIv67CX7NTO8MfwhVoAepxokIVtR7aW882nDrvGnakF5vOxxz-VamzxK0_qB9C-1eKa3z1OEjWlDPfYOjYPHNJYTx5_s64btHFD7E8fotYdn5zuI7wuHa_o7wrw679xZCqHbxHmp_cRZGj9fw42BguDx_ML8FC0qhOpbTqW_5Pys2vFjzNcxws0gXLGbLjLFZvRHlYg0rZAzWsYACliLnwJKEs6IQHOKZ3ITJ8TJmMWNpzKJlucp4vl5mmMUiXpZkGWMDUkVhH0TGVrO-p9tkKY_5TEGOyvUtP2Maf9BeGBrL1X5mN_3eybvKkWWspPPuhOKlV7jpW7K-FUQ3_Bvgw25s1lm1-f-b0N7m_wUAAP__6DQQzQ">