<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">