<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJytVtuOozgQ_RryYgUZc0nykIe-Zael3tVoei-PLWMX4A3YkW0mk7_fMqTT0MrujnomSiDY5VOnXAdXlUaetp9UxO4ieh_Rm_HqG673jlTGko7vla6JaLmulzjQcR-xZGq8QyvfAKmUdZ541QGBr2DJI44qvUfo2WoiLHcNSKI06U6k4gKIN5KfYvJXAzosswqnvSG9loCYXEtybE4BSHlSguDogh8O3IJGhw1ico3GR6s8L1sgUlkQ3tgTidiaO9KgMWhHZG9DLL_89ge56b3B0IBEBR3uUjkvGhB7HIjYhgjeOxjiapTYL_tDTB6ROzoqgVg4WCN7gTSBO9WeCA-71bbm6KL0Zro7AW74CqOdaeE8ylIiJNJjEcuQZLf30B3IUqLrMHgx6vYYzCS2txkQjSHD6pXCbei40ggUqEerW2Toe6sJjdLbKL_Tl9_qHu1JlD5MMdkOnfhTLCbkms5IwpfHud3EYJrS5RIT7pTR4_xs7jxDkjSmcfJvAOoqHzKaf356uHl-IK4vOxQAJ2VfhxQY64NKGu8Pw64jPbbDORe37dcuNrbGZxLUo7Roezmmc5AfKbnYe4vai0cXzx4HUCDd4ZI_GpPh89ma2vKOcFv3HSou-Pou9iMM5iilhH6j-FlVIilySGi6YSSQDM7SG3dy45_PqE8_UPk9cMN8vhlZfnwxzlvgXcSK4WXQfkh3yPqudxavrSrDNSxiuyQN-xFksYvjcbLIxvvT05-_LjEjzkTsln4T5QoZBe1dKCdzylRWWXaN8pdeP6ta8_YTbnSLuX4V4c9glaHTGSv2jhVQUfwcVzkizVylU1eZzNfrnJ5dTXAEIsTFgJFKtJhBZFMIQVmxyopROePe3Stea8ypEo_3FwUYAc6FGfR11dY96FppGESA5xQeK_5DWzBKWBwOIYRghzGUPEGOsyDyeRAJCFleD-KV2DD8gK_qXW_DEf1mgTRLY9qP6uMq480GCc0YF1PGMi9kyWDK-AuEdxXs-GTwgBqe77Do1SB3qoUfEfE1kozCGknMWK7OLPNcUppWrMho_l0O56UY0ZMEl86w13NszFm2-hj2BlfOoDfz1yLLEsH_87VgG7S4QISThb6HYKs1eXkJy16w2lv_EorZ_4Dimhlo8j7kCoc-FjKuvEA_Qx3OfO5DCat43_p3ZX1a62_B-XAwP0PJUe5cL-Q2lZt0wxe8942x2wajOxq7X_S23c4LV61805exMN0bzXBbYqvxN7Yz-Kic64M2d3m6XiWLZruukjyBXJaVLHkl0zLJIOOyKtYYhNgUi5aX0LptlGMXcL_4cZdqyyjDb1JQytZpHm-qFNKy4jkFWW2yNMooYPbaSwle2O0AGeoyTrbYZr3V5wV3DosHwCtDr3wL21lxHfuGc9fosBHEHtHbU2jksPhbOJtx7D-x9VPXG8HFEMd2COIfMJFIEg>53871</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang-format 13.0.1 crashes when trying to reformat a file in unwritable directory
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    Hi,

thanks for making clang-format!

For the first time ever I think, clang-format crashed in my face today. When I tried to understand why, it became apparent that an unwritable directory (as happens during GNU Automake `make distcheck`) cause the hick-up. It can be reproduced easily as follows:

```console
# cd "$(mktemp -d)"
# mkdir unwritable
# echo $'int main() { return 0;\n\n\n}' > unwritable/dirty.c
# chmod a-w unwritable/
# clang-format --version
clang-format version 13.0.1
# clang-format -i unwritable/dirty.c 
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: clang-format -i unwritable/dirty.c
 #0 0x00007fc165e10392 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/13/bin/../lib64/libLLVM-13.so+0xcb7392)
 #1 0x00007fc165e0df44 llvm::sys::RunSignalHandlers() (/usr/lib/llvm/13/bin/../lib64/libLLVM-13.so+0xcb4f44)
 #2 0x00007fc165e0e0c6 (/usr/lib/llvm/13/bin/../lib64/libLLVM-13.so+0xcb50c6)
 #3 0x00007fc164d58850 (/lib64/libc.so.6+0x3d850)
 #4 0x00007fc16c026746 clang::DiagnosticIDs::ProcessDiag(clang::DiagnosticsEngine&) const (/usr/lib/llvm/13/bin/../lib64/libclang-cpp.so.13+0xba1746)
 #5 0x00007fc16c01ecdb clang::DiagnosticsEngine::EmitCurrentDiagnostic(bool) (/usr/lib/llvm/13/bin/../lib64/libclang-cpp.so.13+0xb99cdb)
 #6 0x00007fc16d56db2e clang::Rewriter::overwriteChangedFiles() (/usr/lib/llvm/13/bin/../lib64/libclang-cpp.so.13+0x20e8b2e)
 #7 0x000055d003f26405 (/usr/lib/llvm/13/bin/clang-format+0x11405)
 #8 0x000055d003f1ec47 (/usr/lib/llvm/13/bin/clang-format+0x9c47)
 #9 0x00007fc164d441ca (/lib64/libc.so.6+0x291ca)
#10 0x00007fc164d44278 __libc_start_main (/lib64/libc.so.6+0x29278)
#11 0x000055d003f1ef11 (/usr/lib/llvm/13/bin/clang-format+0x9f11)
Segmentation fault
```

Best, Sebastian
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVttu4zYQ_Rr5hbBAURfbD37Izd0AabHYbNvHgCJHEmuJNEhqvf77DiXHkQK3XaRr2JJFzpw5wznisDTytP2kInYX0fuI3oxX33C9d6QylnR8r3RNRMt1vcSBjvuIJVPjHVr5BkilrPPEqw4IfANLHnFU6T1Cz7yJsNw1IInSpDuRigsg3kh-ismfDejgZhVOe0N6LQExuZbk2JwCkPKkBMExBD8cuAWNARvE5BqNj1Z5XrZApLIgvLEnErE1d6RBY9COyN6GXH757Xdy03uDqQGJCjrcpXJeNCD2OBCxDRG8dzDk1SixX_aHmDwidwxUArFwsEb2AmkCd6o9ER5Wq23N0UXpzXR1AtzwFUY708J5lKVESKTHIpYhyW7voTuQpcTQYfBi1O0xmUlubzMgGkMG75XCZei40ggUqEerW2Toe6sJjdLbKL_Tl9_qHu1JlD5MMdkOg_hTLCbkms5IwpfHud3EYFrS5RIL7pTR4_xs7jxDkjSmcfJPAOoqHzKaf356uHl-IK4vOxQAJ2VfhxIY64NKGu8Pw6ojPbbDORe37bcuNrbGZxLUo7RoezmWc5AfKbnYe4vai8cQzx4HUCDd4VI_GpPh89ma2vKOcFv3HSouxPoh9iMM1iilhH6n-FlVIilySGi6YSSQDMHSG3dy45_PqE8_UPkauGE934wsP74Y5y3wLmLF8DJoP5Q7VH3XO4vXVpXhGpzYLknDegRZ7OJ4nCyy8f709MevS6yIMxG7pd9FuUJGQXsXysmcMpVVll2j_KXXz6rWvP2EC91irV9F-DNYZRh0xoq9YwVUFD8nVI5Is1DpNFQm8_U6p-dQExyBCHExYKQSLWYQ2RRCUFassmJUzrh294rXGmuqxOP9RQFGgHNhBmNdtXUPulYaBhHgPoXbiv_QEowSFodDSCHYYQ4lT5DjLIl8nkQCQpbXk3glNgw_4Kt619uwRb9ZIM3SmPaj-rjKeLNBQjPGxZSxzAtZMpgy_gLhXQU7PhncoIbnO2x6NcidauH_iPgaSUZhjSRmLFdnlnkuKU0rVmQ0_6GA81aM6EmCrjPs9Rwba5atPoa9Qc8Z9Gb-WmRZIvi_vhZsgxYXiLCz0PcQbLUmLy_B7QW7vfUvoZn9Byj6zECT9ylXOPSxlNHzAv0MddjzuQ8trOJ969-19WmvvwXnw8b8DCVHuXO9kNtUbtINX3jlW9jOusbYEM_HIYcnHDz8eHsKJxTsahbOZhwPVnimUddPOIvettt5B6yVb_oyFqZ7yzfclnhm-Qu98FE51weR7_J0vUoWzbZYYx1KVoiMr3O-WvNKlpBvIMtLyYBli5aX0LptlONx4n6htowy_CYFpWyd5vGmSiEtK55TkNUmS6OMAhaxvXTihd0OHEJ7xskWT1tvbXrBncMeAvCKz3vfGLttUAtHY_eLge92IPs3CeYyCw">