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

    <tr>
        <th>Summary</th>
        <td>
            clang-tidy 19.1.7 crashes due to modernize-use-designated-initializers
        </td>
    </tr>

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

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

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

<pre>
    I'm not sure if this is the same as https://github.com/llvm/llvm-project/issues/113652 or not, but after upgrading `clang-tidy` to version 19.1.7 (from 18.1.6) I've noticed some crashes caused by `modernize-use-designated-initializers`, for example:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.

Stack dump:

0.            Program arguments: /opt/misc/llvm-19.1.7/bin/clang-tidy --config-file /home/[...stripped...].clang-tidy -p /home/[...stripped...]/compile_commands.json --use-color=false --enable-check-profile --header-filter=.*ConfigurationLoader\\.h [...stripped...]/ConfigurationLoader.cpp
1.            <eof> parser at end of file
2.            ASTMatcher: Matching 'modernize-use-designated-initializers' against:
 InitListExpr : </opt/[...stripped....]/call_context.h:23:53, col:58>
#0 0x00007c43a4edd0db llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libLLVMSupport.so.19.1+0x1820db)
#1 0x00007c43a4edac74 llvm::sys::RunSignalHandlers() (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libLLVMSupport.so.19.1+0x17fc74)
#2 0x00007c43a4edb076 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libLLVMSupport.so.19.1+0x180076)
#3 0x00007c43a6183670 __restore_rt (/lib64/libc.so.6+0x4e670)
#4 0x00007c43a5527e20 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTidyModernizeModule.so.19.1+0x1c0e20)
#5 0x00007c43a4a2fc6d clang::ast_matchers::internal::DynTypedMatcher::matchesNoKindCheck(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5fc6d)
#6 0x00007c43a4a2fead (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5fead)
#7 0x00007c43a4a332ec (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x632ec)
#8 0x00007c43a4a2faae clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5faae)
#9 0x00007c43a6701ce1 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTidyAndroidModule.so.19.1+0x26ce1)
#10 0x00007c43a4a2faae clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5faae)
#11 0x00007c43a5527f67 clang::ast_matchers::internal::matcher_hasType1Matcher<clang::InitListExpr, clang::ast_matchers::internal::Matcher<clang::Decl>>::matches(clang::InitListExpr const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTidyModernizeModule.so.19.1+0x1c0f67)
#12 0x00007c43a4a2fc6d clang::ast_matchers::internal::DynTypedMatcher::matchesNoKindCheck(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5fc6d)
#13 0x00007c43a4a2fe94 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5fe94)
#14 0x00007c43a4a332ec (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x632ec)
#15 0x00007c43a4a2faae clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5faae)
#16 0x00007c43a6687f98 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTidyAbseilModule.so.19.1+0x3df98)
#17 0x00007c43a4a2faae clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5faae)
#18 0x00007c43a4a09302 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x39302)
#19 0x00007c43a4a25506 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x55506)
#20 0x00007c43a4a291ae (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x591ae)
#21 0x00007c43a4a29f43 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x59f43)
#22 0x00007c43a4a219f8 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x519f8)
#23 0x00007c43a4a21ada (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x51ada)
#24 0x00007c43a4a20491 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x50491)
#25 0x00007c43a4a219f8 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x519f8)
#26 0x00007c43a4a21ada (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x51ada)
#27 0x00007c43a4a29e00 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x59e00)
#28 0x00007c43a4a219f8 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x519f8)
#29 0x00007c43a4a21ada (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x51ada)
#30 0x00007c43a4a2a197 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5a197)
#31 0x00007c43a4a219f8 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x519f8)
#32 0x00007c43a4a2dbf6 clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangASTMatchers.so.19.1+0x5dbf6)
#33 0x00007c43a27294d0 clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangFrontend.so.19.1+0x13e4d0)
#34 0x00007c439f653ccc clang::ParseAST(clang::Sema&, bool, bool) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/../lib/libclangParse.so.19.1+0x39ccc)
#35 0x00007c43a26eb7f9 clang::FrontendAction::Execute() (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangFrontend.so.19.1+0x1007f9)
#36 0x00007c43a267370b clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/../lib/libclangFrontend.so.19.1+0x8870b)
#37 0x00007c43a4fe2cc4 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTooling.so.19.1+0x5ecc4)
#38 0x00007c43a5025847 (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTidy.so.19.1+0x2d847)
#39 0x00007c43a4fdbb39 clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTooling.so.19.1+0x57b39)
#40 0x00007c43a4fde6b7 clang::tooling::ToolInvocation::run() (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTooling.so.19.1+0x5a6b7)
#41 0x00007c43a4fe0243 clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTooling.so.19.1+0x5c243)
#42 0x00007c43a5026b4b 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) (/opt/misc/llvm-19.1.7/bin/../lib/../lib/libclangTidy.so.19.1+0x2eb4b)
#43 0x00007c43a672efbd clang::tidy::clangTidyMain(int, char const**) (/opt/misc/llvm-19.1.7/bin/../lib/libclangTidyMain.so.19.1+0xbfbd)
#44 0x00007c43a616f8a5 __libc_start_main (/lib64/libc.so.6+0x3a8a5)
#45 0x000000000040107e _start (/opt/misc/llvm-19.1.7/bin/clang-tidy+0x40107e)
```

The `call_context.h:23:53, col:58` seems to refer to `{impl}` inside the following line
```
  explicit CallContext(ConnectionImpl& impl) : _impl{impl} {}
```
where `_impl` is a private member of the `CallContext` class declared as `ConnectionImpl& _impl;`

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWl1P6zjz_zThxmrkOO8XvQiFao_-h1208H9uK8eZtN517Mp2WNhP_8hJ27wAZ2HhwNGjgyo1NPbMb148HnuGGsO3EmDpxedefHFGW7tTeqlVKdryrFTVw_KLR9IGSWWRaTUgXiO74wZxg-wOkKENIGrQztq98cLCI2uPrLfc7trSZ6rxyFqIu-PXYq_VH8CsR9bcmBaMR9ZBECYxQUo7Hh5ZobK1iNYWNGr3W00rLrfISzATVG4XllcPXoKRVegOtOFKoiD3Az9FHslqrRoUZH7gJx7JkUN-B44sZ1AhoxpATFOzA4MYbQ1UqHxwpBtVgZb8b1i0BhYVOJ1QC9WCS245Ffxv0MZLsENXK43gnjZ7AU5cXLjf-w8urr9eFjeXyLRlwy2iqGy3SMNeaesA_3sdISorxCUTbQWd2jsxUEnZn1ZTBr7DgYsbS9mfqGqb_QEaLrCPRn_XWm01bRDV27YBaR0a5JG12jt2DTfsCKJXqkfWJZceWQ_KR4sFU7Lm20XNBbjJO9WAEyk-933fWM33e6h83_fiC388b_8Pgx0b1ey5gA1TTUNlZfw_jJJo0ZmFKaG0F17UVBhAiwVIWgpYsB2wP53OOjiLxQ5oBdqBs-CG-x4pVh3gVlPLlfyq3AAvXnnxyt-hZ5A8McVn-72Hi2CiUS9cgaq98BLtqTagEbUIZIVUjRwgDxdkMr64ub2ilu0ctgJ1j51_k_RlTkhSRLeUS2N7E6Mvktuv3NjL-71GnTnD1cmij4Q76pkKsWFKWri3_s4LCxJ6YRGHzsGZEu4588JL50IkxAjfY4xxyqKQRlBVuCpR57Bh4YWFeTD9w7Xm0nYueOt80iPZMEjTvzbKWA208Uji2HBp3Rr1SPYS__N994KX00fBy69f_3N10-7dEvON8t00j5zj-yAjuCo9kvcyBDMZKEujp2T4vZU3Tu_iFyor0Sk8-64w05ql0QkmmcEscZp8RxVhnCYn3uGYdxJkYZJitNloMFZp2Gh7ACJ4mUT9N3P0ko5YBEmKT7SiMa04JikQ_GY5ulhyy6uHq-NKuVJVK2AqFMNABiDxRKGU1CypUEeotzc1dtP06_HgAVxa0JKK_r-LB3n7sIdqWLNeWPQTzK_q_7isVi7-eCQbET1O-lVVgJhya7X3-VcwPsaJNZcuWpHilfPPVSs7AOZWA5y3XBzJ5D2kt5njCcsMkc1MLBI7nZ8MkswNArT6QChAByjpFEoYEmAfBiVx3E5QsrlWKIX3ctOfvvkth6AUTlbIJxEwxQGD4P2iViErrXj1RMwiCYNg2KrwT2f4AZwhCOZ7WJ2krxHs8G6zo8YpOTiZYzUiMs7eXqm4J-ldABMucXOfZ80-SRn_N83-inShTtLB6ORnvvD5y3CcLwTho4Qhjz4yYciH7DyIfpyMIXiU2f7cJT5jl5jks0mSpXWevWPOUBrg4om4FVZ1ng0o0p_O8CM4wyyNx3mIyYdhCR23AUs-c4k4xm-8SniNXhy34VZjntHmAYWPw-K4DViCOZY6Cj8QSx2FA5Z5thHk9RuDx2uwOG4Dlvk-G9CKfiAWWtEBy2yfJTjK33gQew0Wx23AMt9nP9NG88uTz7TRfMvJAb_xiu9V6wjwcMlH5tcnn2mjedz9RBuF87hLgzz9OCyO24BlHnc_0UbhPO5WZZ18OwEZ5ytDclTc3E6zo-LmdtVXVbqs6I11g9cI6EQYBJwEc5KSPKrwWMCrVli-F3C_UtK0zVGovuhxq6k0oit8_b_k9oMlXGtHXlbTY3oIUTUs-El9Ia-TOGSMjeW7ptrAI-vcQEMP2WqplBi-30-KJwTqsMwyNcaGk9y0RkESKNM6Hwtz1EjBnEn63y7vgbUW3qM69WIbYJzW-QA7mcJOwxSXY9irvparv0hjqWQwAX6QZWKemZwf6F5ZluKhVjgrDNRAGIvGklmlBH8a9Zoyq_TDoejZyi_yTjF6kNXY6lBu3FEN1WZvZ7d3g8pOs8LL2eFozQVcUUm3p5PTP5K9Xv3i1izlEvRve-hr2uYx6QtOt1IZy9kpLPSHqvc5z_Zam4YtYGy4X5mWQWJM4ix64341PkxP79yrLBrtTtNdu67KMsyfNbmTZGyip2zNdvR0tzo_31aa3x1Dbm_yw6yXmfNZL3mLI3xPI6dlOMSNCM9UDUmZvlbV71SVfx4yTcrBO6JgFhAwicJnIa-ORMdovyXfMd5956XGyOjoGZHZUkvKaBK9uz6rowCr4xKaSXIacxowzg1Wz6tocPoLamlJzfQuaWjMKLSmD79D7YWrk3dvNuz-Pgj6f0pqONsYqzviK7fsJkvB_bCxmnJrjq9ni4UK4dxL6dH7_jNB8kVa3Rp-B79DvZL2ultbw-u7-pAp_nYHWtAHF6ZvHoyF5kBpmnGMKd904J2Q72b_R9EOymjY4KJpq0dKoC6rp40_FFGo45t1XTsrNItu_9JzJ0UayuUEclmXQxUgiqbNKUmd0RhtNo7CxliqXb7O5Tc7VEKa0XigeMy6-r8IBzgF1NN6qSijjsSuBaajceAwagr0cHG7g66F8SVtVwlGBqAxyCqkoQbtHhyl9Jw3e-GlF24Il4YfegFrJYT6i8stElzCjDlCcL8XnHGLVlSI0_rMVkpK6CLPF0eVJKij7gwZFmjTszpyRF567hhPaf-1A93J1Y92qAyiaK_5HbWAGmhK0EjVHUovwWMASXceMQZVwITbrRA13ZhHsHri4XnP86xahlUe5vQMlkEaYZyTNI7PdssoiCFMaElxAlFakiSK8xoYyZIIU5qkZ3xJMIkxIZiEOI5DP6xLTOMsinEYJHWeexGGhnLhO1v7Sm_Puv7LZUAynEVngpYgTNcoS8jY9MSLL870svOQst0aL8KCG2sGOpZbActRL-ShZfXYjFq14Iz8og7As1aL5Ru6bXth7pbkvwEAAP__LJgRiw">