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

    <tr>
        <th>Summary</th>
        <td>
            Crash when clang-format is used for incomplete file
        </td>
    </tr>

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

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

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

<pre>
    The way to reproduce:
1) create a file test.cpp with the content
```
struct X{
    operator iunt(
};
```
2) run `clang-format-17 test.cpp` against it.
3) get a crash

Stack trace:
tack dump:
0.      Program arguments: clang-format-17 test_clang_format.cpp
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVM-17.so.1 0x00007f39f98cc406 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 54
1  libLLVM-17.so.1    0x00007f39f98ca5b0 llvm::sys::RunSignalHandlers() + 80
2  libLLVM-17.so.1    0x00007f39f98cca9b
3  libc.so.6 0x00007f39f8442520
4  libclang-cpp.so.17 0x00007f3a03308d03 clang::format::TokenAnnotator::calculateFormattingInformation(clang::format::AnnotatedLine&) const + 1411
5  libclang-cpp.so.17 0x00007f3a032d0bed
6 libclang-cpp.so.17 0x00007f3a03305366 clang::format::TokenAnalyzer::process(bool) + 1142
7  libclang-cpp.so.17 0x00007f3a032e0efd
8  libclang-cpp.so.17 0x00007f3a032c910a clang::format::internal::reformat(clang::format::FormatStyle const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, unsigned int, unsigned int, unsigned int, llvm::StringRef, clang::format::FormattingAttemptStatus*) + 2298
9  libclang-cpp.so.17 0x00007f3a032ca571 clang::format::reformat(clang::format::FormatStyle const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, llvm::StringRef, clang::format::FormattingAttemptStatus*) + 81
10 clang-format-17 0x0000559e7653e0d5
11 clang-format-17    0x0000559e7653cb54
12 libc.so.6          0x00007f39f8429d90
13 libc.so.6 0x00007f39f8429e40 __libc_start_main + 128
14 clang-format-17 0x0000559e76539d25
Segmentation fault (core dumped)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVkFv2zgT_TX0ZRCDoiRLOvjgtA1aIMVXxMGH3b0YFDWWuZVIgRwldX_9gpScuNt43cMeNggSafRm-ObNcEjpvW4N4prltyx_v5AjHaxbD1YbOuC3RW2b4_rxgPAsj0AWHA7ONqNClm4Yf8_4JmGiAuVQEoKEve4QCD0t1TDAs6YD0AFBWUNoaPJgKz7_xldPblQEv7HidjIAANgBnSTrQI-GmChnz-I9S2_fjCICDTcaYCuuOmnam711vaSbpHjhw1YcZCu18QSalpNjGhxbJJCgnPSHOXr8uyWpvgI5eZZvNDVjP7xY-JLx6ouzrZM9SNeOPRryLN3AW0R20bibjJHV2VIhblTNjgT-2Ne2AyN79MBEicaPDuFoRzjIJ4Sue-pvJpD-jg60Cd8cfNk8fgTrwCNF8dE8aWdNYAVP0gWF7u___3m3_f3z7f_uP_3x4WEXXII6ZCGWPjxoYqJ6TRKg03Xwu0mKpbfLBPg3zjkv9mm1r0qlMr6KlIJLuvFHPz18cdpQzO4x6ijKV5CTzzvryaHsmVgx8Q50qHYFTNxCns0N9vPKAH9bXOY1f2vxh9FsdWtk91GapkPnQyvN8ctT5_xCfCWrem6XiFYBtzoHlVkmcjGHzCZQrL4ahhi0eEVLnqa8bHg6NchEdWqI6fnRfkWzMcZS2AOTTclOjZ0kvItA0qb9ZCYnbQ0T5YVYcxhs7rXBqHIVtqOnKEKSJcnEOb_KWTS8xmZCr64nmKer1ZUEZXf8jnN-g7MKfShQbW13KlKSZGJasbjODznuZ37ldbSqEi4vEdSG0BnZzX2K87eLKk9F2dKxw0nduZ9fe3JLTpv2Afc_mjfOyWOwpu_OQpO1nT69PEjTIks_BMfRxHndTBvl-vuF9f8xi9BaGyLsh7BvafRMbE71EKKaZ3H1CwrLvEgurfXf0fTf1qicd1TCfzoAJnnyvMJilafIm3yGJj9BX2bQCa3ql4kozmbQy88Pw0hUTTUPoyS9NLFEhRmH3S583nmSjna91GbaeKczN8muZFE1Ys5ii204ZOJAgr0cuzBjSmUdxoMNm3CgROSiWadNlVZygeuk4GUmkjypFoc1r2vJG1HivuapyIqc7_dYVkkmsCm4Khd6LbjIuBCcV2mSV8taYZ1KgYXi5SpPBcs49lJ3y1DWpXXtQns_4roUqSgXnayx8_G2I8R5XkyIcP9x63iq1mPrWcY77cm_BiJNHa7fhVsCPB_Q_CAMaA-jxwb24dZilO2HDgnjjWgxum59IBrisSTumLhrNR3Geqlsz8Rd7MDp383g7J-oiIm7yNszcRep_xUAAP__JL_vEQ">