<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/83091>83091</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[llvm-cov] Unreachable blocks marked with __builtin_unreachable are still counted as uncovered
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanShaders
</td>
</tr>
</table>
<pre>
```
$ clang++ -v
clang version 19.0.0git (git@github.com:llvm/llvm-project.git 62d0c01c2c9adce67f2e1adb9feecd7ba1a97814)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/danklishch/code/llvm-project/build/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/12.3.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/12.3.0
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1
Selected GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
Found CUDA installation: /opt/cuda, version 12.3
$ clang++ -Wall -O0 -g -fcoverage-mapping -fprofile-instr-generate=test.profraw test.cpp
$ ./a.out
$ llvm-profdata merge test.profraw -o test.profdata
$ llvm-cov show a.out -instr-profile=test.profdata test.cpp
1| |bool g_false = false;
2| |
3| 1|int main() {
4| 1| int code = 1;
5| 1| if (!g_false) {
6| 1| code = 0;
7| 1| } else {
8| 0| __builtin_unreachable();
9| 0| }
10| 1| return code;
11| 1|}
```
A real-world example for this would be an exhaustive if-else chain with the last else being provably unreachable.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VU-P46gT_TTkUrIF2B3HhxzSifzT77SH2dEeWxjKNtsYLMBJz7df4WTypzM7K612oig21KtXrwhVJULQvUXckpdX8nJYiTkOzm8Pwn4ZhEIfVq1T37ZkTS9feiB0R3gJ0gjbE_5K-CtkRzgblk04og_aWWB1TnPa6wiEb3odSZkWw9zm0o2k2BlzHAlv0iObvPsTZcwTes0VlZRJLmuhJK6rjiMTqq07RKmqVjBRVxtWEl6fw_4ufI-RFDv42Kzf1mU223frTjYz2s4fWW_nC27wKBSMTqFJ6MkF_XE2_d-GKIxBddA-mQhvBjci4Y0S9t3oMMiB8EY6hZ8kE960szYqPbU9szVutgqksEorERH-t9-DPkcQUTt7iTAHn8h0S3jTS0l4c9E_yTvpvGE8L3L6a6iLnOfs31Gvy1-o-5_J75R_QYMyovpvWfdXseNsok6HWewgJ8UrKem4Ln-GKvgFVvBPEn_GdT6k_dfD7kdZuCldNjkrQfj-VmU8L_6mLP8QxkD2G4Wsh6yT7ohe9JiNYpq0TVuTd502mKVgPuvRohcRSXGIGGKerF6cYFnIabpFyQlvRO7meNv6XhKdElHAiL5HeGDJ3G29YD75SneEMLgTLMRw0XRReC9pcX7UBADASLWH84dU-9Y5A_1bJ0xAIMUBlrd03FcH_uBw2y_SfmLTNsIotCV8Q3gNpLpzLq_O3-MmdGoPSzT2EOnlGdzBwsouEp_4108ucGOnD-zVE5RUB8Al8XvKzRVHr29vb6l3RW3fZutRyEG0Bs_5PsSon3xJdbiYGX0S4DHO3i6C72kYe0BeKT6Pl-V3Bx6FyU7OGwX4IcbJIHTOQxx0gJObjYIWQVjAj0HMIeojgu6yJXE5CG3hpOMAcUAwIsTzibSYbv7k3VG05hvcZZ2v1LZQdVGLFW5ZRTd1XfGarYatYopWSrKStZWQqsNNXW0ofZGFKijvipXecspLynlFGd8wlhflRnVszZVUtFuvkZQUR6FNnm567ny_0iHMuN0UtGYrI1o0YRnBnFs8wWIknKeJ7LdLdbRzH0hJjQ4x3FiijmaZ3d8riLwc4OstJ2iNk-8BRuHfUZ3P44d_OQiPEKI2BqSbbepTIsBsl56BajV7sx1inAIpdoQ3qYneJvl5Hj6PxSWNQHizpPlXAAAA__9ta4VJ">