<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61466>61466</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            UBsan misses a Null-pointer-dereference
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          shao-hua-li
      </td>
    </tr>
</table>

<pre>
    For the following code, UBsan cannot capture the null-pointer-dereference while gcc's UBsan can.

Compiler explorer: https://godbolt.org/z/GYzxrjrav

```shell
$ cat a.c
struct a {
  int e;
} * h, i;
struct a j() {
  h=0;
  return i;
}
int main() { 
  *h = j(); 
  return h->e;
}
$
$ clang-tk -fsanitize=undefined a.c && ./a.out
UndefinedBehaviorSanitizer:DEADLYSIGNAL
==1==ERROR: UndefinedBehaviorSanitizer: SEGV on unknown address 0x000000000000 (pc 0x5643ff62b53b bp 0x7ffc38e5ff70 sp 0x7ffc38e5ff50 T1)
==1==The signal is caused by a WRITE memory access.
==1==Hint: address points to the zero page.
    #0 0x5643ff62b53b  (/app/output.s+0x2b53b)
    #1 0x7f4ecb185082  (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 1878e6b475720c7c51969e69ab2d276fae6d1dee)
    #2 0x5643ff60430d (/app/output.s+0x430d)

UndefinedBehaviorSanitizer can not provide additional info.
SUMMARY: UndefinedBehaviorSanitizer: SEGV (/app/output.s+0x2b53b) 
==1==ABORTING
$
$ gcc-tk -fsanitize=undefined a.c && ./a.out
/a.c:9:8: runtime error: store to null pointer of type 'struct a'
$
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVV1v4jgX_jXm5ojIsYMTLriASdO30nxItPOuerVynBPijrEj22lpf_0qAUq309lZLUKE-Pg8fs6HnyND0DuLuCKLDVmUMznEzvlV6KSbd4OcGz2rXfO8qpyH2CG0zhj3pO0OlGuQsE_wfROkBSWtdRGU7OPgcdpqB2PmvdM2op836LFFj1YhPHXaIOyUIiwPF_-E0JLQ9fH3k9v32qAHPPTGefSEr6GLsQ-ErwmrCKt2rqmdiYnzO8KqF8Kq6_uXg3_w8vEtEhH0-A0dGnNaYxkoGUEm6rgQoh9UBAkk3xxXALSNgISf3kleAmFr6MaY9evyq-MDYQVhy7cAHeElfd0J4DEO3r5xJnl5_DMetZfaXjDg7ETYugPCy_MBhF9sJ8BuTvgV_oxKWPYmXCPtbh5_wLwN0uqoX5DwcrANttpiM6YCCBOECUgIq2Tihnj0_n7es8FOPmrnb0_-Y03Kq3X5-f725vrr-vPpMF4SXqbHx9V2-207lu4fQeD26vr_4CwM9od1TxZk03gMAeiBvvkAYUWvgB4WIuNtK1i94DXUPdBD3raKF7ho25xC-PvKgsJdOmbuZ3p3HcLY_9KADqDkELCB-hkk_LG9ubuCPe6dfwapFIaQfADwP23jGMCZ8NTuAaKbbsALege93GFyrthYT07fhwBTaSvZ94RVboj9EJNA2IYeJvsr95N_OoWXoarTYkELdvY3uiasOhTiT5HNjbbDYb6zw9GgkuASccTMaMGmNmPFZtCmuWnGENIiL1DUWb7IGVW5WqRLsUSxlDVrWC5aiaJJG8T3bNglGppx2vw6mNF6qcNvemtUBBglpffuUTc4plhH7aZa2dadUnr7_cuX9fb-X7bYb_MMH9R4vfm2vbv5ev3Bpdop9Z-u1PSmCF8vCV8XIz0_2Kj3COi9m_iG6EYddZOMwklGwbUQn3uEUTlPykNY_p7ZWfFmzYo3S76UM1ylIl_SLM2FmHUruahzXmeCMUx5UedKCJqlaZqlyHKe05leMco45WlOC7ZkImGFQpkruWQ8E2qhSEZxL7VJjHncjxI80yEMuBJpJsTMyBpNmGYKYxafYDISxsYR41ejz7wedoFk1OgQwwUl6mhwdZwJex0CBpDw9ReTZDZ4s3o3FHTshjpRbj_2vXk8P-a9dw-oImHVxCUQVk1c_woAAP__UJwOPQ">