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

    <tr>
        <th>Summary</th>
        <td>
            segfault in clang::ento::ParamVarRegion::getValueType()  (clang-tidy 18.1.8)  
        </td>
    </tr>

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

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

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

<pre>
    Toolchain installed on macOS via homebrew. The same error seems to occur on the 18.1.8 releases from llvm for aarch64-macos and x86_64-linux. Possibly related to the static call operator?

```cpp
template <class T>
struct arg
{};

struct ctx
{
  static constexpr auto z = arg<ctx>{};
};

struct fun
{
  template <class T>
  static constexpr auto operator()(arg<T>) -> arg<T>
  {
    return {};
  }
};

auto main() -> int
{
  (void)fun{}(ctx::z);
}
```

```
❯  /opt/homebrew/opt/llvm/bin/clang-tidy --checks='-*,clang-analyzer-cplusplus*' --extra-arg='-std=c++23'  demo.cpp
Error while trying to load a compilation database:
Could not auto-detect compilation database for file "demo.cpp"
No compilation database found in /Users/oliver or any parent directory
fixed-compilation-database: Error while opening fixed database: No such file or directory
json-compilation-database: Error while opening JSON database: No such file or directory
Running without flags.
PLEASE submit a bug report to https://github.com/Homebrew/homebrew-core/issues and include the crash backtrace.
Stack dump:
0.      Program arguments: /opt/homebrew/opt/llvm/bin/clang-tidy --checks=-*,clang-analyzer-cplusplus* --extra-arg=-std=c++23 demo.cpp
1.      <eof> parser at end of file
2.      While analyzing stack:
        #0 Calling main()
3.      /Users/oliver/demo.cpp:22:15: Error evaluating statement
4.      /Users/oliver/demo.cpp:22:15: Error evaluating statement
 #0 0x000000011ca8dd60 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libLLVM.dylib+0x4695d60)
 #1 0x000000011ca8e134 SignalHandler(int) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libLLVM.dylib+0x4696134)
 #2 0x0000000198aae584 (/usr/lib/system/libsystem_platform.dylib+0x18047a584)
 #3 0x000000010d0348e4 clang::ento::ParamVarRegion::getValueType() const (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x22988e4)
 #4 0x000000010d07d120 (anonymous namespace)::RegionStoreManager::getBinding((anonymous namespace)::RegionBindingsRef const&, clang::ento::Loc, clang::QualType) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x22e1120)
 #5 0x000000010d073f84 (anonymous namespace)::RegionStoreManager::getBinding(void const*, clang::ento::Loc, clang::QualType) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x22d7f84)
 #6 0x000000010d046c40 clang::ento::ProgramState::getSVal(clang::ento::Loc, clang::QualType) const (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x22aac40)
 #7 0x000000010d01b73c clang::ento::ExprEngine::bindReturnValue(clang::ento::CallEvent const&, clang::LocationContext const*, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x227f73c)
 #8 0x000000010d01023c clang::ento::ExprEngine::performTrivialCopy(clang::ento::NodeBuilder&, clang::ento::ExplodedNode*, clang::ento::CallEvent const&) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x227423c)
 #9 0x000000010d0134c4 clang::ento::ExprEngine::handleConstructor(clang::Expr const*, clang::ento::ExplodedNode*, clang::ento::ExplodedNodeSet&) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x22774c4)
#10 0x000000010cfef08c clang::ento::ExprEngine::Visit(clang::Stmt const*, clang::ento::ExplodedNode*, clang::ento::ExplodedNodeSet&) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x225308c)
#11 0x000000010cfeb3c4 clang::ento::ExprEngine::ProcessStmt(clang::Stmt const*, clang::ento::ExplodedNode*) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x224f3c4)
#12 0x000000010cfeb174 clang::ento::ExprEngine::processCFGElement(clang::CFGElement, clang::ento::ExplodedNode*, unsigned int, clang::ento::NodeBuilderContext*) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x224f174)
#13 0x000000010cfcb2b0 clang::ento::CoreEngine::dispatchWorkItem(clang::ento::ExplodedNode*, clang::ProgramPoint, clang::ento::WorkListUnit const&) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x222f2b0)
#14 0x000000010cfcadbc clang::ento::CoreEngine::ExecuteWorkList(clang::LocationContext const*, unsigned int, llvm::IntrusiveRefCntPtr<clang::ento::ProgramState const>) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x222edbc)
#15 0x000000010d32b144 (anonymous namespace)::AnalysisConsumer::HandleCode(clang::Decl*, unsigned int, clang::ento::ExprEngine::InliningModes, llvm::DenseSet<clang::Decl const*, llvm::DenseMapInfo<clang::Decl const*, void>>*) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x258f144)
#16 0x000000010d31b1fc (anonymous namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x257f1fc)
#17 0x000000010ce67f74 clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x20cbf74)
#18 0x000000010afa70f8 clang::ParseAST(clang::Sema&, bool, bool) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x20b0f8)
#19 0x000000010ce38dd4 clang::FrontendAction::Execute() (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x209cdd4)
#20 0x000000010cdbbad4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x201fad4)
#21 0x000000010cf4c9e4 clang::tooling::FrontendActionFactory::runInvocation(std::__1::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::__1::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x21b09e4)
#22 0x00000001042708a4 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>, bool, bool, llvm::StringRef)::ActionFactory::runInvocation(std::__1::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::__1::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (/opt/homebrew/Cellar/llvm/18.1.8/bin/clang-tidy+0x10000c8a4)
#23 0x000000010cf4c724 clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::__1::shared_ptr<clang::CompilerInvocation>, std::__1::shared_ptr<clang::PCHContainerOperations>) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x21b0724)
#24 0x000000010cf4b33c clang::tooling::ToolInvocation::run() (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x21af33c)
#25 0x000000010cf4e228 clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (/opt/homebrew/Cellar/llvm/18.1.8/lib/libclang-cpp.dylib+0x21b2228)
#26 0x000000010426b2c4 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>, bool, bool, llvm::StringRef) (/opt/homebrew/Cellar/llvm/18.1.8/bin/clang-tidy+0x1000072c4)
#27 0x00000001042a11b8 clang::tidy::clangTidyMain(int, char const**) (/opt/homebrew/Cellar/llvm/18.1.8/bin/clang-tidy+0x10003d1b8)
#28 0x00000001986f3154
zsh: segmentation fault  /opt/homebrew/opt/llvm/bin/clang-tidy --checks='-*,clang-analyzer-cplusplus*'
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl1v27gS_TXKC-FAomRLfsiD49i3vehHbp3tPgYUObK5pUiBpFK7v_6CovxBNU7T2-SiC2ywm8YSyZk5c3hmTIkYw9cS4CoaX0fjmwvS2o3SV0rwB9AC4KJUbHd1p5SgG8Il4tJYIgQwpCSqCf24Qg-coI2qodTw9RLdbQAZUgMCrZVGBqA2yCqkKG21m2Q3gJLiMrkskAYBxIBBlVY1EuKhRpXSiBBNN5NsVBOqDCKSoW0xuZ9kI8Flu71Et8oYXoqdm08sMLe8W9VYYjlFlAiBVAOaWKWjdBnFN1E8639PYv8fbRp_xULduFVQlM6pIMaguyhd-HvG6pZaRPS6n51fR_lNlF6fLtkPonZ7HNT9gQ4OKWksbBuNSGsV-oai9KZbNJ27WeliuO45G1Urv7PxlP_nPDiAg4sITyNceGe6iXiKRlG6QCeX-rVOjCKkwbZaooHnbtDNuSA60zXh0pv1Zri034UU4eJBcRbhqQvYW8BFB9UsSmffnM-nWIWZfTTd_ccFjqY30WzpbCxVYyO83DP3cMHRMMLL0vm5pILI9chytkOjEd0A_WKi9CbC-SjCswjP_X0iidh9Az2ijWiN-7-7m6PRCLZWk1EHZjfNWBalNzTC1xG-xqkbhBjU6vJAyEW3b75uuABk9Y7LteO3UIQhgqiqGy6I5UoiRiwpiQGHSjdzrlrBkFS2y_KIgQVHzEemdNuschYijA_mMfbrfFDnJrWSIS4deH8Y0MZh1gkFcrtW7lBDNEiLGNdArdI7v17Ft8BGJ0uOTlxHp_GqBqQLuJtxGiD6oJBp6cY7rfTQxF9GyZ-y8O_Vxw8_Y-BTK7t5X7ndqNaiSpC1ufT3bt8tZqsFMm1Zc4sIKts10tAobV3mNtY2xuUILyO8XHO7actLqhzH3hy5t6fhiCoNEV5yY1rw4sclFS2DTuKoJmaDSkK_WE0o9A6sLKFfEGvr5sCF-BJ1P7darTWp3XZua5DWefJr5P8x8we0H3J-wPek9zRK56AqpwkN0QY0IhaBZEhVXU78YNwP_rNLprfu0mIcAofgUf8T4TRGcyKEG3JUHj8o3dsdkjnCy4OH6QzjKJ0l4yOP4IGIltjeqgWHql8xe_EVfQTxNvY_SUJJwdgk7mqlV0OzM_6PW82l7Zhw56gR4eI4SJOv98pYDaSO8CTC80538RR1gHxPhjkIQfSRD75eu8-89L_fvfv8_pLtus_X8TabTMdsEh_AdY4nA8chSTO04mtJxBsimXC4FC_vxyRJs8APfOLHtCAExkXWG2yNPixmdsZC7T_6v-9dYa2Urk8MJEWc5WRchCbSExMxi9OsgAx1O8TjD9KqPktEk_oz0Z9gzZX019ZgPxPRwt2ugb42dgX7f0fFb07aNCeeYzwtCgj9zkK_c5bg2FklUsldrVqDJKnBNB2fpt5b7_nKKg3viSRr0IcorrlkXK47t5-xRj_cfILKB9xz81Hg3ik6uPeflggP2S_w53GkIElwSObxAKm08iT6ZaRcp7OPfvZ7RM_yasDvSRh9NqFZfIbfvt6snI4dol19JsJ1cD8f2avsA0JoFmY3D-NLyjylj8e32DZ6Iddc9tGVXLJPXS_cbeFzUboitHhwvdEZor9TtGtc5kpa2NqAEUcdfyutbg1_gE9QzaW9tdp3_U_noV_MN_cvjGVe5SkNsCwGWMb4uVg2oJ3a3mn-wImYq2Z3Ds4PisF1ywVzNeS8Ziy2jVAMmBv-1O56LDsvj1SGB0hNB0ilGT1TNYZIbbr6OXfOui-G3Te5k4lu-I815bnonI5bwWuhk2f0qDmuezjte2JaQRUXz-TRZ264DRFZ2dr-zRAZp3FBA0SSASJl-ly-3GpFwRiHwovg8uLBZlU6SD8eBpvkzwy28cHOl_9aCN9LByGfXn8-D1rZnZMx3zifmXciS72OvxZaSR6ilYZo0RKXZwr0XGk4RYtx0xBLN38q_eVt1wA_LrlP742-3Nyqp-BxJt5xY_-Q_FWVFle4jAN4sgE8hJVntGQIz2ILtLWwdz1E56miPSTM71zEMbAylJqw3U1xmWQ_bHdn7tu44caVpbbeN7tv-lLFBr3RDVDxM3truMvfSsEll-v3ioEJAb4BaTpdDmB1Bs-0Vd2E96R5Kyv1g0ndwWS66PLwClt7XFRJFm7tsPdOkzKp6K-k4k4TafwpmduIYVZmq7uDcr3C1hznVVKFTAtabwqTvAp1_n0rLG8EbH-3WGJaVgMVDlpfUpE8ropAJYk2MFvdDWow1KTvYkulxPHfF_e4jKsicHgagp8WjAXgL7UDULIZtYfTil4R-4OKF_ZwShkLMMVhG8jKkoQuzrtDX9BvpbFE0lC2e78DuAcxvQo1kooMwhj0bhmdhidEVinBH3dxSfw5tD_Ja-Vb-dDXnQgX3dmqu3F_n_QHghuigd03w7JyBOow3YlYILdLLg5HFV7vnr_-7fyN226ES9AfuwdMXEnzvY0bTtZSGcvpYUe_hpImZTyFMAdBS5nhPC5ImAPOjijP3fU7dyVgz3HMYcCpyMzP5nR-fDhxs3-gcnoWcKxGM63J7hNUUTr_Hv2SGE7vjdXdwnO6cdA8liZ3595qwq3Zj_Op-H4oEcIxQumTgX2J-2Hfcrz9UPUH0R8fQAuyc1xa-TNVv1Iobqcrr7pwXMiHAvYP859g_vDxjD-ZdrymBQk5nw51J8fndedOKXEK0mOwO4Kc-8bIdPe0Y8j3nwb0bMJeJCevoDQ5DlEffN_IyjQ8A3sO6q9SYBNSpWnQgOHxwFfAuDivYp3ouQ184uZTge2r7KsoPMY46GfwJFT4SYnpPwr_uyn8C8pdjsNTI5yHBCBJUhaPE4Duk_vePxfef_cM5e1l5TllSRkStgieTU6qNBln_u43s4nSGTKwrkFa_yZGRVph_0_vrgxeoLlgVymbplNyAVdJjvMki6dJcrG5KpNJkZIshgRXmBFKJ0kO-bRIMMtcwBf8Csc4i6c4ixOcjJNLVuVZMZ4UJK7yAhdFlMVQEy4unfeXSq8vupcfrpJ4mqfFhSAlCNO9n4axTyXGEZ7vP_UQ42h8c6Gv3Bqjsl2bKIsFN9YcV7XcCrgysPYwcvlLT2jRXjU8wvvkTxG6aLW4euKtjz5JnaeNVn8BtYcXPhyNfNgPV_i_AQAA__9yzgwV">