<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/88755>88755</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[debuginfo] [optimizations] " opt -passes = 'default<O0>' " leads a non-null pointer to be a NULL pointer, according the relevant debug information.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
edumoot
</td>
</tr>
</table>
<pre>
LLVM 18.1.2 (commit [261aae0c](https://github.com/llvm/llvm-project/commit/26a1d6601d727a96f4301d0d8647b5a42760ae0c))
LLVM 17.0.6 (commit, [6009fe18](https://github.com/llvm/llvm-project/commit/6009708b4367171ccdbf4b5905cb6a803753fe18))
Reproduce with:
```compiling pipeline
clang -g -O0 case.c -Xclang -disable-O0-optnone -emit-llvm -c -o case.bc
opt -passes='default<O0>' case.bc -o case.opt.bc
llc --relocation-model=pic case.opt.bc -o case.s
clang case.s -o case.out
```
Results:
The value of pointer p_j is not correct. It should be pointing variable d, with the same value with p_f, instead of p_k.
```
(lldb) file case.out
Current executable set to '/home/ad/Downloads/lldb/reproduce_bugs/case.out' (x86_64).
(lldb) b case.c:16
Breakpoint 1: where = case.out`func_a + 57 at case.c:16:7, address = 0x00000000000011b9
(lldb) r
Process 2852140 launched: '/home/ad/Downloads/lldb/reproduce_bugs/case.out' (x86_64)
Process 2852140 stopped
* thread #1, name = 'case.out', stop reason = breakpoint 1.1
frame #0: 0x00005555555551b9 case.out`func_a(p=5) at case.c:16:7
13 int *p_i = &g1;
14 int *p_j = &d;
15 int *p_k = (void*)0;
-> 16 g2++;
17 return g1;
18 }
19
(lldb) fr v
(int) p = 5
(int *) p_a = 0x0000555555558030
(int *) p_b = 0x0000555555558030
(int *) p_c = 0x0000555555558030
(int) d = 1000
(int *) p_e = 0x0000000000000000
(int *) p_f = 0x00007fffffffdc4c
(int *) p_h = 0x0000555555558030
(int *) p_i = 0x0000555555558030
(int *) p_j = 0x0000000000000000
(int *) p_k = 0x0000000000000000
```
and GDB shows the similar results.
```
Breakpoint 2, func_a (p=5) at case.c:16
16 g2++;
(gdb) info locals
p_a = 0x555555558030 <g1>
p_b = 0x555555558030 <g1>
p_c = 0x555555558030 <g1>
d = 1000
p_e = 0x0
p_f = 0x7fffffffde8c
p_h = 0x555555558030 <g1>
p_i = 0x555555558030 <g1>
p_j = 0x0
p_k = 0x0
```
`cat case.c`
```
#include <stdio.h>
static unsigned g1 = 15;
static unsigned g2 = 15;
static int func_a(int p)
{ /* block id: 3 */
int *p_a = &g1;
int *p_b = &g1;
int *p_c = &g1;
int d = 1000;
int *p_e = (void*)0;
int *p_f = &d;
int *p_h = &g1;
int *p_i = &g1;
int *p_j = &d;
int *p_k = (void*)0;
g2++;
return g1;
}
int main (void)
{ int i = 5;
printf("%d",func_a(i));
return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysV11v67wN_jXKDeFAlr8vcpE0J8OAs51h2IbdFbIkx2oVy5Dk9my_fpAcO27rfmFvYNgI9ZB8RNMkRa2V506IHcoOKDtu6OBabXaCDxet3abW_D-7nz__9ReIy228JYBIyfTlIh2g7EDymFKBGcqOiJStc71FyR6REyKns3TtUG-ZviByUuppekS90Q-COUROoyFETiSnMc9zHPOCFLTKmzTBMce8zNOizmhKihwHP6TyFz4ivB9JFVu8zW-kELnzvHKMq0bE5f_Ly9spcFmnSV7ERcwYr5u0ziqcsTqnJU6KLAl-FrzG-99FbzQfmIBn6VrvfFzM8Xgxfemlkt0ZetkLJTsxApii3RmiM0S_MDBqxZZB9O-rlEtLayWiXzjSvet0JyASF-kizx8iBpEedWo2WtO9g6in1gqLkiMiBRcNHZRDyd0vjJIfiBSTAszKunezAaUYRJERSjPqpO6ii-ZCoeTYS7ZEz8p2uY1RcjM8uFdReBkxOyhnb6EK93-0Ap6oGgToBnotOycM9PcPIC102gHTxgjmtvBnB7bVg-JQixHog_tEjfQhA-4zw78KcK0ASy-T2SDr7xu_LjvrBOXB1f3jdp0sKZXiNSIVNFKJVzu7G4wRnQPxW7DBBc9WOHAaECkQObX6IhA5UY7I6aifO6UptyEBvcmTmbLmvh7OXj5bJ4VP8t9lfp-niFTbN2Tqa7agZB_n4-rBCPoYQgExSvbw3AojACXHG-kcN0PH7ikgcoCsAOpemEn2hY8L5dwIa4Mq_o0XvziuqzdUzCj5m9HMa5EyI3GKQdGhY63gnsofG411f9bpvhd8orcH1xr_dhFJYr-rzieB3xIixcKyX_KqYAS1uguIehHJbTxaBABoTLBBEuw3NYYmm35xXb0NNCJlj5Jj5uO0EuzJcpwAIFx5H94pIvv-Xl7J5ucYJYcbNH2DfJiQ_AUwe2vz8Yosn7TkiOwRqfCsE6HkB8T5qHUmiBz8tbRYzBaNcIPp4BW1Mqyj4ngTVaPozbdk4GkWys55WR_IZUsxjByh9yk7Z-MU8RIneB1dfwvNvoD2SB5wMcbv2BErXwx-F90s0EUz_jhL2Tq6_daO5LfQD9_i_fgxeq2I0o7Dn44HX7Gf7ViR5UUqasCMXWC99i4KGvGf6Vy73v2mgpp_riQwIuV5TD7ZNRp8i1PX9nVLr2WwACV3PsF_TKD6KyD2Oeh1Hi0yZxJMyTEnhijZtNZ-hYb8CujhtdvHl4LVxj0vsVvw83cUSCI7pgbu93dnHZd6287-raNOMhi6MJFyOMdjXLL5lb1BkHcQPkVgrrjhX3-b0IoDhFlwD7XS7BFk6EnJmNKna62aayRdr7s3QP0ZgH0AWLz7VV3xUYV-gWxWq_5tvf2M5jsN5rO-8sVu4pFrTWSldcwNY7x7-xcqu5vlxYv0i_LaKJZWeyM71yBSIkIQyXh43N1S4jqyrxDBKzw-yPtw3_Bdwqukohuxi4s4iauiKvGm3WUiLxJcEpaThBV5ktI4Z3VTJEnKqrRkG7kjmKQ4jbM4j6sUb1NBqqIoaioobfKmQikWFyrV1g_5W23OG2ntIHZlWWTZRtFaKDsd3swunGTCuJRiJa2zNzUnnQrHPC7q4exrHsqO_rSkeycv8r9hwLdBRggsjg7TkLRyePBIJSi3QKHTXdQNSs1jutN-Fqfw13_-_DkJwzjJmDbcj-e-8huhxBP1X4KnFWqxuQQu281g1O7bp7cQHj8uhgj9LwAA__-rDgVP">