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

    <tr>
        <th>Summary</th>
        <td>
            clang-format-13: (AlignArrayOfStructures) segmentation fault 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Formatting the following code using `clang-format-13 -i -style=file file.c`:

```
struct testcase tc_table[] = {
    { "x", test_x },
    { "xxx", test_xxx },
    { "xxxx", test_xxxx },
    { "xxxxx", test_xxxxx },
    { "xxxxxx", test_xxxxxx,
      TEST_DISABLE_X | TEST_DISABLE_XX },
};
```

With the .clang-format option `AlignArrayOfStructures: Right` or `AlignArrayOfStructures: Left`

.clang-format:

```
AlignArrayOfStructures: Right
...
```

Results in a segfault:
```
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: clang-format -i -style=file ./hwtest/pmu.c
 #0 0x00007f598123c183 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xbb9183)
 #1 0x00007f598123a500 llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xbb7500)
 #2 0x00007f598123c61a (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xbb961a)
 #3 0x00007f5980186520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f5988ba0a63 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x2939a63)
 #5 0x00007f5988ba0534 clang::format::WhitespaceManager::alignArrayInitializersLeftJustified(clang::format::WhitespaceManager::CellDescriptions&&) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x2939534)
 #6 0x00007f5988b9f055 clang::format::WhitespaceManager::alignArrayInitializers(unsigned int, unsigned int) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x2938055)
 #7 0x00007f5988b9c4b6 clang::format::WhitespaceManager::generateReplacements() (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x29354b6)
 #8 0x00007f5988b5f3b6 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x28f83b6)
 #9 0x00007f5988b7c366 clang::format::TokenAnalyzer::process() (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x2915366)
#10 0x00007f5988b69c2c (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x2902c2c)
#11 0x00007f5988b58d5a 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*) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x28f1d5a)
#12 0x00007f5988b59503 clang::format::reformat(clang::format::FormatStyle const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, llvm::StringRef, clang::format::FormattingAttemptStatus*) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x28f2503)
#13 0x0000000000408e36 (/usr/lib/llvm-13/bin/clang-format+0x408e36)
#14 0x0000000000407f8c (/usr/lib/llvm-13/bin/clang-format+0x407f8c)
#15 0x00007f598016dfd0 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#16 0x00007f598016e07d call_init ./csu/../csu/libc-start.c:128:20
#17 0x00007f598016e07d __libc_start_main ./csu/../csu/libc-start.c:379:5
#18 0x0000000000405b55 (/usr/lib/llvm-13/bin/clang-format+0x405b55)
Segmentation fault (core dumped)
```
[_usr_lib_llvm-13_bin_clang-format.1000.zip](https://github.com/llvm/llvm-project/files/8933204/_usr_lib_llvm-13_bin_clang-format.1000.zip)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNWE1v2zgQ_TXyhbBAUdbXwQcnTrBdpNgiDra9CRRFydrSkkBSG6e_foeUE4dK7CbpHmqkgkjNvHkzQ3KGLbryYXndyR3VumlrpLccVZ0Q3b0Zsa7kaFDm1YsxE7St55UVngchmjdorvSD4F64rhoBivDwGUh64crDaw8_PmFm_LNDpeXANNJcaUYVR5rlmhYAE1140RoBGvKSi1EWwQ8GyCNkD_88cmn18j3MrmH0Umrvyu3PSU5Fz8q-ED4v_VJ878gidHe1ucvXnzari5ur_BsoX06mvjkGzHt48WpEx-fXRm9tAv3nmUJdr5uuNQlciaZuV1LSh7-qjU3CILmCZKHbpt5qkECdPC94wys9MetYO5_5nxEY8Xz_jJO3XA1CK9S0iCLF64rC8GjVVflyc7XaXCE1FLtGg3wx1EjyvpOw-jq01bo3xj1yDX_wTflC_LvzO1nDGNG2BCtMDLAHTFSZpGqLCsq-a0kZP5DcaJhA5bDrn0hgf8zvF9nVku4QlfWw4622jjqpebGDfDC8vTdLBl763QC7aVwwHgkxwnsMv6SKsjQgIQvSEBnCxnC4Ug9qfPkim1ZbWneGp0fSo5Ck93kH-4_TnUdiszxB1iMZ4KdgUTQFPPdpnMeLuWjaYT-v22H8cHPz92fY9b7q_MAjF3hfFBkwAOUjxWBCkUYYv0bxdmg3sBKo-AOCLLhU1vwHWSRgxGFBpoGKA_pBB0HTgQ6fQ-MgjSOC3wDNDGhsQRcEVBzMxXPMtKCYxuFbMO1CYn1vCYcWnGRhBtoOfDSFj8CiVR5zcdy34errtoG118Oq-UxbWnM5TtOnbfupbXQDwx-QM3MU_Dko3VQNL4Hv-zAvuRBrrphs7PGk7HKM37YITrkOnjmux67rWYWj6H9xHSgOrYIvvBw30CVyx7_gRQokHS-SiRdsUcTv9KLmLZdU81veC_g2HkZv3XIneEZAw-GZujyjKgSeH4RPqzScwGcufMLC-GQY7rrvvF3B-fLw4zEEvewYV7_qdRCB1Sda5sTDLq04Y4R9GB4T0Hbgg0lQ0zKip7yGlcclOH046vnh28mdObZ9G1N_oNNrTc2xJeF4YEONht7vllfutN0PZja8fAatuw6cPAxuYRqq2tXLrfHz8Qn7Z70wzetKa77rTenTAyR69QuJTqsAAu1kgkwykUU4PMXp94n9bxFLAqFyYvlYRsffAqc8fDwqBiWfjBjycwNzXTQtPJ1G0xZTq-lALybQSZWyj0EbTQc6cot_XFYlRnlu_M6VplLnjAqR7yj0pqaRY8qExTev0PmUHJpNct32WhyCNVXyt5CCKIVHEB-txhOrHCclsjoNVKSpofHVoM8tOjSQAEcMKMFH0OQ1UMeV17x4FTxMMkP7iJ1OMhAVUHU_lAGj-ZSBDa9N3aL2MmO7fgPKOslt921akOz1e0N0kYNh41x-MJqDyfy5QT8Aqv6PpocLKKC6N4Ma7lVD4bNud6D9yB5qyj-cmVbdNO8mu2kWhgRDF3L9DpMkm5XLsDS920w3WvDl5KZt7g3A6sTtCXamehmb2SDF8t1-NEoN1pEoDvBitl1ChxvEVYaTrEyrbFFi6KJSTlOcJJyWpJgJWnChlubuTkjL75GFMHffaD1rlgQTguMgxSkJosgvokVQFUEAUwQa1cRbYA4rTTxdvGZyaSmZ2xh8FI3Sx1vZjCpbKfhy_K-CGR30tpPL7VB3YpcuZtb20nL_D4VD-3M">