<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/101582>101582</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[llvm-lit] FileCheck crashing when checking an empty file
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
connieyzhu
</td>
</tr>
</table>
<pre>
When piping an empty file into FileCheck and using the CHECK-EMPTY directive, FileCheck crashes.
The crash occurred when running the following lines:
```
# RUN: touch %t
# RUN: cat %t | FileCheck %s --allow-empty
# CHECK-EMPTY:
```
The crash gives this error message:
```
# | check:24'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 62: # | FileCheck: /usr/local/google/home/connieyzhu/llvm-fork/llvm/lib/FileCheck/FileCheck.cpp:1848: bool llvm::FileCheck::readCheckFile(SourceMgr &, StringRef, std::pair<unsigned int, unsigned int> *): Assertion `AfterSuffix.data() >= Buffer.data() && AfterSuffix.data() < Buffer.data() + Buffer.size() && "Parsing after suffix doesn't start inside of buffer!"' failed.
# | check:24'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 63: # | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
# | check:24'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 64: # | Stack dump:
# | check:24'0 ~~~~~~~~~~~~~~~~
# | 65: # | 0. Program arguments: FileCheck /usr/local/google/home/connieyzhu/llvm-fork/build/utils/lit/tests/Inputs/shtest-cat/cat-empty.txt --allow-empty
# | check:24'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 66: # | #0 0x000055abcd1c5078 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/connieyzhu/llvm-fork/llvm/lib/Support/Unix/Signals.inc:723:13
# | check:24'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 67: # `-----------------------------
# | check:24'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 68: # error: command failed with exit status: -6
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsFsuO2zbwa-jLwAY9svw4-KB4bbRoUyziBEVPBUWNJHYlUuBjHzn02wvSu1l5EydtmkMKdGBY5AxnOMN5CudUo4m2LH_F8quJCL41diuN1ooe3rdhUprqYftrSxoGNSjdgNBA_eAfoFYdgdLewEF1tGtJ3oDQFQQXj_mWYPfDfvfTdP_6-u1vUClL0qtbYrgbMUgrXEtuBoxfMV6c_t-2dCKAkTJYSxXcRQ1s0PpJdm26ztzFXac0OZY98rIlf_ydtpjBm3e_sKwAb4JsgWHuPyJJ4RMB2GqsHMPcwXQq4k3TZPRYy8g_svCiBi9MatQtOfCtckDWGgs9OSca-pwFUS0ZVWJZgQuGKw4R_vwSnEsYwRKj2U-EDxafkIfgLMNDZ6ToGB4aY5qOGB5a08fPc3DEQ91tP62NvXlcx48qGR6eZY7WMzkMLCvm68U6XlUa00HiygqWFWM1WFZYElXaRjzD9dEEK-l1Y4HhMkbR0VulmzdUx43z1YltEMqybBd0iuwqRmikn-2zPTAsGG6iFoVzZL0yGtiSF7Unewx1re5nlfCC4ZrhBli2Z9kVvAp1TfaMEFVZwkW23Sd5Xj1hnXpP55IY4rWwKYVEFAouSYXKkNMMVx6cF9aD0k5VBKaGMoliOGeIDFdQC9VR9SGjPh0-Xwyd_-GbwuVMzMaZeP3zvjjuwYWyVx4ElKEBS4OxHryB1vshVTo8xLxUvg3lTJp-lHsxHQdr_iDpGR6Uc4Ecw0MqzErLLlSUyuepFpVC3ngrJH1n0XL5tRbj1zp6IW-gCv2QsP-0XF6-JR_fwmdwbU1jRQ_CNqEn7aMTzvrE15bMMqiuiuxedS7Vzug2T87H3Y96CGnh2oiaShGpUvhTM5r5e3_enr4vL_4duOyD5dgHDDMO_J5zzvNclLKay5yv1qPm4R7caXFtlfYpMt7GyGa4fj5kxd3vxnlLon_sIak7bL5V0zuGIeYqw8M7re4jQjVadG6mtGRZscKY7PPsv-emF3DZa6sPXlvy6efgX77BZQ3WTxqk6SpNd6bvY_07NUa4U74Fulepk_qQcnm6hBfD16TaZtUm24gJbecrxDzP5ws-abeSL0jw5Zzn-UqWizXihhNm601Gy7paionaIscFX_M5Zhkin4lstahzUUva1CuUki049UJ1sxg7M2ObSarT2zmf52ucdKKkzqWJHFHTHSRqbO751cRuU_CVoXFswTvlvHsW45Xv0iifzsRakl-9nLXjYJGG6fTiHw30k2C77df3mUcTbrf4VwAAAP__joJHoQ">