<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">