<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/136814>136814</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-format crashed with "IndentPPDirectives: BeforeHash"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zhiweij1
</td>
</tr>
</table>
<pre>
```
#ifndef ABCDE
#define ABCDE 0
#endif
#define FGHIJK
```
```
(base) zhiwei@zhiwei-ubuntu:~/testfolder$ ~/newdisk/llvm_workspace/release_build/bin/clang-format a.cpp --style="{IndentPPDirectives: BeforeHash}"
clang-format: /home/zhiwei/newdisk/llvm_workspace/llvm-project/clang/lib/Format/UnwrappedLineParser.cpp:1189: void clang::format::UnwrappedLineParser::parsePPDefine(): Assertion `(int)Line->PPLevel >= 0' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format a.cpp "--style={IndentPPDirectives: BeforeHash}"
#0 0x00006179312d5a92 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0x9fa92)
#1 0x00006179312d2cdf llvm::sys::RunSignalHandlers() (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0x9ccdf)
#2 0x00006179312d2e24 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x000075c494045330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x000075c49409eb2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
#5 0x000075c49404527e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
#6 0x000075c4940288ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
#7 0x000075c49402881b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
#8 0x000075c49403b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#9 0x000061793139aabd clang::format::UnwrappedLineParser::parsePPDefine() (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0x164abd)
#10 0x000061793139af10 clang::format::UnwrappedLineParser::parsePPDirective() (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0x164f10)
#11 0x0000617931394b5f clang::format::UnwrappedLineParser::readToken(int) (.constprop.0) UnwrappedLineParser.cpp:0:0
#12 0x00006179313a4739 clang::format::UnwrappedLineParser::parse() (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0x16e739)
#13 0x000061793135bc21 clang::format::TokenAnalyzer::process(bool) (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0x125c21)
#14 0x0000617931324aec 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*)::'lambda5'(clang::format::Environment const&)::operator()(clang::format::Environment const&) const (.isra.0) Format.cpp:0:0
#15 0x0000617931324b54 std::_Function_handler<std::pair<clang::tooling::Replacements, unsigned int> (clang::format::Environment const&), 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*)::'lambda5'(clang::format::Environment const&)>::_M_invoke(std::_Any_data const&, clang::format::Environment const&) Format.cpp:0:0
#16 0x0000617931322407 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*) (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0xec407)
#17 0x000061793132441c clang::format::reformat(clang::format::FormatStyle const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, llvm::StringRef, clang::format::FormattingAttemptStatus*) (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0xee41c)
#18 0x00006179312700f0 clang::format::format(llvm::StringRef, bool) ClangFormat.cpp:0:0
#19 0x0000617931257288 main (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0x21288)
#20 0x000075c49402a1ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
#21 0x000075c49402a28b __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
#22 0x0000617931267635 _start (/home/zhiwei/newdisk/llvm_workspace/release_build/bin/clang-format+0x31635)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWN-P4ygS_mvIC0qECxzbD3lwdyc3ezcnRdN7zxG2ywnbDliA-8c-3N9-wk7anexkdjLaSLfSjKYlTODj-6oKqkA6p7YacUHiOxI_TGTnd8Yuft-pF1S_RZPCVG8LMmeH_ywnwFWtK6xpfnf_sBx6KqyVxqGHHkahrlQdmh9HrP7x6Zd__it0fYQ8-4S0kA4JZHSgQQQbGtOu6LTvCM__S2Dl0fnaNBVaAoKGHo0vlXJPBFZN87zfvBj75FpZIoGVxQalw03RqaYisCqUJrAqG6m309rYvfRUzsq2pdOp828NEv5AAEhy94uuUPv1-kFZLL16Rkd4Tu-wNhY_SbcjST-Q5R-xwhACq53Zh7UPKr7JL3RMW2t-w9IfiYVuVRBYrQZQWP1Hv1jZtlh9VhrX0jq0gTTheRSlWVj12aiKDrN5Tnj-zofw_Cuzhx_a0F6vH3ofEUgJ9Fi5c2i9MpoGx0CqtCeQhclTwpfr9Wd8xoYSviT8gTICCa2larCaEZavPy_zxyV1XbFXnkpadFtqsTXWU2_ozvs22JHAisBqq_yuK2al2R8M8Ud7KOc6dARWVOqKKl02XYXU75CWVrodLWT55K0sMaz96GX5RKtuHwxDWM5mtP-3tmZr5Z5Ku-32qL273k3fHUYE4EMkXRFGlABnlL0yxtg8SjIeQRXLDGhvmN5d7s0NjbVV2vdqf7U9v3QcZOXLxjhvUe4JzAnc08F9tPfvX6uZwB17zWqZQYicQUN0pgHKqv6ahi-dflRbLZtPUlcNWjfE3-1olmVVjzThnCaCoCeEjoF_T53aKl2bjSeQh--w1_pmdpjhDpuR9X_DAvywQBKXIhNMxJyzg7hhc7-m881cTBulu9fpVnfDD-XMmdm8Z9xPGRmLU8AMCyhp63cWZbV5Uk1zHXo_f0SPz-lCgtRK5fBa0pDgCDs_hYU0rWsqi3AcXAXbTxxhkz_ARsXVgFExAqangLyIo-Q6wH7KCJidxBfPpCz-kvP5ZvsjmgtZVIOAsI3ZuYA6Yj8s4Hj43V5DHbFRQ3SmQRRxfbWGsL9-NU-o3zNh4D8rjXa-taadhQXp5Qx9PBQCodNTh0uR8OzHjHpzS2LCs9GS_JR4XJQQXSLeGyvXsnn7_Z2yNSW6cMQXxjQ3JQ5xCdFIXJwSByGxvERcaY9Wy-bo9yNsemH8UJ49hmRP-3A4JNwx2z16q_T2C9an3bm18i308vsP0N6YRh0_vki9xVBiwT3tdF-rV_SQj_7s-8L631Thld7m3uO-DYWF79yQ4IYhBJJG7otKxgSSy_ZY6mdljQ4l1gd7HDBMi1Z6Yw9l5rUgQ7vfecpZOWy6gfpX9ll87vUiFtT5alhis-p0Gerbze6Q6vn9-4-tVPZbfsG2kSUOZeS57fmSXm-dy575GY83isflIQ7-vVH62TyFw3QMjly_bSrp5YkJrwzWi4E5PwtMECz56f7vdv_N0gaWgiVj1kjOzw8RXcwa_z-O-VsYGkVUjoZOT69hCWP1xSrz3cwXdB5Li_sw_eIOPC3MIU4gTeleKn0zyRBBmr5LBnZ2d5FRKa-8u4QpI2B0DghpQTebMGfjvLR-80Hedy8BaTEucXZbnidzHtMB_GZm49GcxwOFPFwYseqTq7HYP_Hg8a5yfEGcVAteZTyTE1xEiYh5GqdCTHYLJplMykJEsoZElLEUmeDzLIpEnBVZXUzUAhjETABnMQgmZjHUWQHzkklI45ojEQz3UjWzoGVm7HbSv0stIj5PIzFpZIGN619SAU51AIkfJnbRv2oV3dYRwRrlvBuRvPINLk5ekvqnLazoi_I7SgD-9A0JYNLZZvHjr2sHIc8L-F8AAAD__4OD07c">