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

    <tr>
        <th>Summary</th>
        <td>
            LLVM18/Clang-Tidy: Segfault while trying to analyze valid code.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

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

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

<pre>
    Environment: `WSL2 with Ubuntu 23.04 @ Windows 10 Pro 21H2`

Clang++ Version:
```
nyyakko@DESKTOP-7N72PNH:/mnt/c/Users/nyako/Git/clangy$ clang++ --version
Ubuntu clang version 18.0.0 (++20240119042255+5f41cef58f72-1~exp1~20240119162419.571)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```

Clang-Tidy Version:
```
nyyakko@DESKTOP-7N72PNH:/mnt/c/Users/nyako/Git/clangy$ clang-tidy --version
Ubuntu LLVM version 18.0.0
  Optimized build.
```

Snippet to reproduce the crash:
```cpp
struct S
{
    constexpr auto operator==(this auto, S)
    {
 return true;
    }
};

int main()
{
    return S {} == S {};
}
```

Backtrace:

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /usr/bin/clang-tidy --extra-arg=-Wno-unknown-warning-option --extra-arg=-Wno-ignored-optimization-argument --extra-arg=-Wno-unused-command-line-a
rgument -warnings-as-errors=* --use-color --p --extra-arg-before=--driver-mode=g++ /mnt/c/Users/nyako/Git/clangy/clangy/source/main.cpp -- /usr/bin/c++ -I/mnt/c/Users/nyako
/Git/clangy/clangy/include -I/mnt/c/Users/nyako/Git/clangy/clangy/include/clangy -g -std=gnu++23 -Werror -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-a
lign -Wunused -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion -Wnull-dereference -Wdouble-promotion -Wimplicit-fallthrough -MD -MT clangy/CMakeFiles/clangy.d
ir/source/main.cpp.o -MF clangy/CMakeFiles/clangy.dir/source/main.cpp.o.d -o clangy/CMakeFiles/clangy.dir/source/main.cpp.o -c /mnt/c/Users/nyako/Git/clangy/clangy/source/m
ain.cpp
1.      <eof> parser at end of file
2.      While analyzing stack: 
        #0 Calling main()
3. /mnt/c/Users/nyako/Git/clangy/clangy/source/main.cpp:11:12: Error evaluating statement
4. /mnt/c/Users/nyako/Git/clangy/clangy/source/main.cpp:11:12: Error evaluating statement
 #0 0x00007f12fc7bbc36 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd85c36)
 #1 0x00007f12fc7b9c60 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd83c60)
 #2 0x00007f12fc7bc2fb (/usr/lib/llvm-18/bin/../lib/libLLVM-18.so.1+0xd862fb)
 #3 0x00007f12fb4e5460 (/lib/x86_64-linux-gnu/libc.so.6+0x3c460)
 #4 0x00007f1305c925ca clang::ento::ParamVarRegion::getDecl() const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2ca15ca)
 #5 0x00007f1305c92547 clang::ento::ParamVarRegion::getValueType() const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2ca1547)
 #6 0x00007f1305ccbb21 (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2cdab21)
 #7 0x00007f1305cc6ea0 (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2cd5ea0)
 #8 0x00007f1305ca2d97 clang::ento::ProgramState::getSVal(clang::ento::Loc, clang::QualType) const (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2cb1d97)
 #9 0x00007f1305c7ce26 clang::ento::ExprEngine::bindReturnValue(clang::ento::CallEvent const&, clang::LocationContext const*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramS
tate const>) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2c8be26)
#10 0x00007f1305c73b58 clang::ento::ExprEngine::performTrivialCopy(clang::ento::NodeBuilder&, clang::ento::ExplodedNode*, clang::ento::CallEvent const&) (/usr/lib/llvm-18/b
in/../lib/libclang-cpp.so.18+0x2c82b58)
#11 0x00007f1305c76312 clang::ento::ExprEngine::handleConstructor(clang::Expr const*, clang::ento::ExplodedNode*, clang::ento::ExplodedNodeSet&) (/usr/lib/llvm-18/bin/../li
b/libclang-cpp.so.18+0x2c85312)
#12 0x00007f1305c5a2de clang::ento::ExprEngine::Visit(clang::Stmt const*, clang::ento::ExplodedNode*, clang::ento::ExplodedNodeSet&) (/usr/lib/llvm-18/bin/../lib/libclang-c
pp.so.18+0x2c692de)
#13 0x00007f1305c57bb3 clang::ento::ExprEngine::ProcessStmt(clang::Stmt const*, clang::ento::ExplodedNode*) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2c66bb3)
#14 0x00007f1305c578df clang::ento::ExprEngine::processCFGElement(clang::CFGElement, clang::ento::ExplodedNode*, unsigned int, clang::ento::NodeBuilderContext*) (/usr/lib/l
lvm-18/bin/../lib/libclang-cpp.so.18+0x2c668df)
#15 0x00007f1305c3e9b7 clang::ento::CoreEngine::dispatchWorkItem(clang::ento::ExplodedNode*, clang::ProgramPoint, clang::ento::WorkListUnit const&) (/usr/lib/llvm-18/bin/..
/lib/libclang-cpp.so.18+0x2c4d9b7)
#16 0x00007f1305c3e521 clang::ento::CoreEngine::ExecuteWorkList(clang::LocationContext const*, unsigned int, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>) (/us
r/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2c4d521)
#17 0x00007f130605f5c5 (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x306e5c5)
#18 0x00007f130603f634 (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x304e634)
#19 0x00007f13059d2bac clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x29e1bac)
#20 0x00007f1303b71496 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0xb80496)
#21 0x00007f1305996b05 clang::FrontendAction::Execute() (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x29a5b05)
#22 0x00007f130590dc74 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x291cc74)
#23 0x00007f1305b85aa1 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHConta
inerOperations>, clang::DiagnosticConsumer*) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2b94aa1)
#24 0x0000556863258601 (/usr/bin/clang-tidy+0x1356601)
#25 0x00007f1305b8581f clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<c
lang::PCHContainerOperations>) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2b9481f)
#26 0x00007f1305b846b4 clang::tooling::ToolInvocation::run() (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2b936b4)
#27 0x00007f1305b876e5 clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (/usr/lib/llvm-18/bin/../lib/libclang-cpp.so.18+0x2b966e5)
#28 0x0000556863254797 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>, bool, bool, llvm::StringRef) (/usr/bin/clang-tidy+0x1352797)
#29 0x00005568625fae3f clang::tidy::clangTidyMain(int, char const**) (/usr/bin/clang-tidy+0x6f8e3f)
#30 0x00007f12fb4cca90 (/lib/x86_64-linux-gnu/libc.so.6+0x23a90)
#31 0x00007f12fb4ccb49 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23b49)
#32 0x00005568625f6205 _start (/usr/bin/clang-tidy+0x6f4205)
Segmentation fault
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWktz4rqz_zTORmXKlt-LLAiEM1M3OZM75EyWKVluQDdCcslyBs7ifPZbkg1YBDKZGf6PFAXBavXj162f2jKkadhSAFx7yY2XTK9Iq1dSXYvtlry8yKtSVtvrW_HKlBRrENqLxshLg6f5HUbfmV6hv8pW6BbhaBTEyIsD9MREJb83KAzQg5IIh5-wlwZeMPWCcfc-4UQsPXzj4Rv0DVTDpPCifsyIdi_7tXfDi4Pp7fx_Hr88-NmfGX7485OZgGdroT08ox6e_dWAajw8E1vyIj08-4PZEWNp6-EY0YFN33_trVobfQRWAvUjKMxHwShAHs67STjAcRCGRRBjnCQevkkWcUhhkeSLDPvhP7Cpw392QmGK47AYJVno4aIz8kjUEix6mzx9TmO_pj5not34S9H2IisFpEJrWQE3grVs2KYb-iwaTTiHasqUzQCetY3y8Kxk4iRuA6D9R1Zt_704-9qYPA3z3d23-yOUu3GEvtSardnfUKGyZbwavRPZXLC6Bo20RApqJauWAtIrQFSRZvU2SlrX3ZVGq5ZqNO_Hs5udcYSoFI2GTa0QabVEsgZFtFReNDUvnOsVa-yQhydovs-smXrQo0C3SiCtWvCim6HEdGdyuh_o3pnQaE2YsLVWnHCs1zm3ZrIp6jzafz-o29s4BdkNoS9aEQoHdE4JP9zdjue3qGnLNdOIoLJdGoilsmCvtK6briY8PFsyvWrLEZVrD884f919-LWS_wfUVAZrmhZMwSAiKsQE5W01yBQqd1712Z5rQl9Q1a7rvZvBCNm_ByWXiqwRUcvWUFHzZiX0hbgrP9hoRXyill409Z-E9FvxIuR34X8nSjCx9GWtTRWekGRLIRVUVmLN_iZGzt8ZPq26baDyqVyviajM0gafdP7vZ_VmG580PiglVWMLa4x8v23Ap5JLhXy_Hur3S1hIBcaMXyn2Cso3BOFF0x2b_cTyPPzTyFZRMFMJEyNaG5tvsNzR5ed3THQldN7QLuPvKvnh9P0l5C-R3-jKxC_anpoj5D9ZPJH_RDg33wx8yH9qVqSS35HJkPBfmdIt4X6lraTkld_oLQefkkYj_8l87HLG2VIg_6nLqhF-BcUlqaDaqUH-Uw0VEZpRM1eKHaf5T2ZD9Z0rouXcr0DBAhQICsh_qmRbcjArZS27Knxi65ozyrS_IJzrlZLtcoX8-yny7x_RHpLJPXmBGeN2VXVXR1XPJOpUakcS-fezHyg4N3VUIV_-4lzk09-tzi6uXmP3JezpwIsmIBdedItqohpQiGgEokJygRaMQyeMe-GnFeOAiCB8-zcTS9QYmrH8sWdZqxNHAZoQzo3MMSdHowutNS8ah6F5w8aDW1u58Ep4S3Tvmwbba1mz8X_GbIdFsAmCIMgWIV7QrCxplCLL89HYi8bNtun-eVBMaMvcj3aDwflBSJHvz7LRCsjaw6nZOpkJpehaq55wOCt3W0eY7wloNDoMsdI0Dn6Yjxo5Cj18E2yqPKFRetiHPRyFRw4XNA1OOfy1FXO2FIR_IqLiFs_8Qj5FNA0cn_CRTxQvyksYSvGidAxFQ0NlDEmc9g1sr6fvPA9tpx2gRmlqlUY0PnI-PuiMgoQWOKGk76UtkCC07GuAKLL-RtRXWPZ9ZjRegp4C5T24tr_66ci7Hd3wiYk9t35iSsKEEsfT5I2ncfZTnn4jvIXHbQ3_GnfjzHE3dd2lZYnDCxmrSIlDx1h2ZCwFElzKWALELZncNUZwVZxLRNfQzQ3x7NMw_0ZMwZyccCepIZDB2P-2hHc5u2zCyrAq3IQVblgZBZyeDut2U6tbsWSiD6pkovpqW3hbYueCM9vO7atpFG0gPVkORO8ktX3oRAoNm73Y2IgdOO6z0Kpt2Ct8hcVE6AetvGjyLvxdjCYJvcro9le48DSQeQn4wNGGooMjIKMyyT8GZA1qIdX6UbFXRvhE1ttzWP4pK7gx95Cg3uLoGOCygsqI90B-ODU_AGh3a_dRmHCZ5A5M4RFMaRTij8G0snvaxHhq7nWlclEy4k7t_BY0Q7k5fAiaIShdvO9Dk0QhdqDBLjQJwRV8DJpvrDHd0hCOuV7r_xo4XCC6iI_gSAtsXBjAER3BkZVl9DE4HpSk0DQGgouAcinSSNOyjJwY4-MY82rxQdLoYpzM_rjlXXvrRDq8_vHct8IemlZdL3tm3oCEeso-D1J_1_krUOXVwoHqqBGKoCjP7L8TqWAIVcWammi6epLq5bOG9Tl2fX8x9NvKg3wPG2PijjX6L8F-glR3qOwOHX6ATVwVZeZgkx5jk-DwY9jcboC2GnZ-u9C8tzMfl8rv7NRn9-j-oOm3Fl1cJYO20aDltI1pkCwSmlxkhUdBCglNHGO5ayxapFF8IWMxpFHsGHObuaLCJaHDOrhvuWY1h43ZRds1qO5yd7f4qIhouE24KV-3FMbzx_1i_x3ud5NTQFgSOgwBO21UVGZhXDj96ANRDYznj0fEDmvSd0SllPzweRlHyzyIC6fdw24fUxRpGSRDP2fKwCWqMdX7u7F-sf3iTflpBElSBk7FYbeNKIKKZvHQs4lc14yDsg9fBHWJoHfXAfcolEvmP6Q0c0oYu7t-mSeEOFSmpeTstGczYrrCbX8-04rP4rUnMA_n9nDVHpasiILquT6mpQMs-1mGjByinzEO90SQpem_LQ3-UO3D5JNZOGTXOIP6Yh_AMCmatwamjCyFbDSj-xV6wQakLGJCHC7EuwYkSdI8jXCSp4F7v378_MFqCqMkTQNXU3KcuDxcnE3co5R8CPSpjNEVOdvQd48MhonrZ30sKWdzfWZm38a8SeqJdF4uVXnoNEA4PQI4Tsv4ZwG-JPWURZSW7uLNjlzMUkjOumif4ho_h969F8-Ofy65INIUXPbMjxZEnLnHPHYN7BzuQrCrIj8psxcYbp6T85AcSnlKNClJA86pyaHJGitFtl9h4UWTfc0-P9PNxh6Fe9G4JA2jz41WVvnELCYPT_pzn_0Uc_lZK8J0sxM6WgiEc1NEUg3Gu9ePm77D8OuiP6H-8gqKk60h0vm2Mc14p8ndtYea5zYEE-pR1s8xE84KpzvGxTClOFkQiBanU0p36brvnpHsWn2Xid7U30lP0kUOkbOC3ecOZUwpKX7yJBtHpAgcneGxzjIu0POzmfbcaKL085ow8bNWyrhwrOAjCFMcJKjT_xEkYjzoUeawNPeltsrRgrRcHz2wv6quo6qICnIF12EWJFmQhxm-Wl1DGhYRhQVOoMAkLrMyikuAkpa0ykKaX7Hr3U9VcBQXUTCCAgDyIi5oGtJFlnlxAGvC-MjU10iq5ZV9kH-d5XkYXHFSAm_sL4YwHgaBvWR6pa4tw5TtsvHigLNGNwc1mmkO13d33-4tAx1-oeJFYzSHpY0TfbeP67TaMrFEWvYP7gC9Es4qRGUFo6tW8etf_zmCDeT_AwAA___3JP_G">