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

    <tr>
        <th>Summary</th>
        <td>
            [debuginfo] [optimizations] "opt -passes='function(sroa<modify-cfg>),ipsccp' " leads to debug information missing
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          edumoot
      </td>
    </tr>
</table>

<pre>
    LLVM commit (17.0.6), [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='function(sroa<modify-cfg>),ipsccp' case.bc  -o case.opt.bc
llc case.opt.bc -o case.s
clang case.s -o case.out
```
Result 1: variable b is optimized out (set a breakpoint on line 22 on case.c)
```lldb
(lldb) b case.c:21
Breakpoint 1: where = case.out`func_c + 4 at case.c:21:9, address = 0x0000000000001184
(lldb) r
Process 125277 launched: '/home/ad/Downloads/lldb/reproduce_bugs/case.out' (x86_64)
Process 125277 stopped
* thread #1, name = 'case.out', stop reason = breakpoint 1.1
 frame #0: 0x0000555555555184 case.out`func_c at case.c:21:9
   18    int a = 55;
   19       int b = 8888;
   20       int c = 1111;
-> 21            b = func_a() && func_b(a, c);
   22       return b;
   23   }
   24   
(lldb) fr v
(int) a = 55
(int) b = 8888
(int) c = 1111
(lldb) n
Process 125277 stopped
* thread #1, name = 'case.out', stop reason = step over
    frame #0: 0x000055555555519f case.out`func_c at case.c:22:5
   19       int b = 8888;
   20    int c = 1111;
   21       b = func_a() && func_b(a, c);
-> 22         return b;
   23   }
   24   
   25   int main (void)
(lldb) fr v
(int) a = 55
(int) b = <variable not available>

(int) c = 1111

```
Result 2: a[4]=0 (set a breakpoint on line 8 on case.c)
```lldb
(lldb) b case.c:8
Breakpoint 2: where = case.out`func_a + 26 at case.c:8:5, address = 0x000055555555515a
(lldb) r
There is a running process, kill it and restart?: [Y/n] y
Process 125277 exited with status = 9 (0x00000009) killed
Process 125858 launched: '/home/ad/Downloads/lldb/reproduce_bugs/case.out' (x86_64)
Process 125858 stopped
* thread #1, name = 'case.out', stop reason = breakpoint 2.1
 frame #0: 0x000055555555515a case.out`func_a at case.c:8:5
   5    int func_a()
   6    { 
   7        int a[9] = {2, 2, 2, 2, 2, 3, 3, 3, 3};
-> 8             return a[4];
   9    }
   10   
   11   int func_b(int  p1, int  p2)
(lldb) fr v
(int[9]) a = ([0] = 2, [1] = 2, [2] = 2, [3] = 2, [4] = 0, [5] = 3, [6] = 3, [7] = 3, [8] = 3)

```

`cat case.c`
```source code
#include <stdio.h>
static unsigned g1 = 15;
static unsigned g[3] = {3, 3, 3};

int func_a()

    int a[9] = {2, 2, 2, 2, 2, 3, 3, 3, 3};
    return a[4];
}

int  func_b(int  p1, int  p2)
{   
 return g[1]+p1+p2;
}

int  func_c()

    int a = 55;
 int b = 8888;
    int c = 1111;
    b = func_a() && func_b(a, c);
 return b;
}

int main (void)
{   int i = 0;
 printf("%d",func_c());
    return 0;
}
```


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WFuP27oR_jX0y8CGODR1efDDeh0_pUhRFEX7FFAkbbORRUGkdpP--oKUJfm23pzsyVksZGs4nOs3M6SFc2Zfa70ifE34ZiY6f7DtSqvuaK2flVb9WH3-_K-_gbTHo_FAMKfZIlmkBAuCz0D4Ok2SYqdpTviGYH7wvnGEPRHcEtzujT905ULaI8FtVb0MH_Omtf_V0hPc9oIJboOcLMnLJUszmlEpVblblrxIuCxTkScs4yzqwYIkG5I89c9_6Ka1qpMaXo0_BM39Ypr0_9IeG1OZeg-NaXRlat0zyErUe5jvYf4lASmcXkiY__tEVcaJstLzL8ncNr62tYa5Pho_D8bDXMLc9ntK2UuzjYd5I5zTjrANwWzX1dIbWxPMXWsFYc9Hq8zux1zu9oR96sNnGidlQzAbhMEo2DZ-FF5V8pw48rhzT3rKtL_zV4EYwuW6ygMl7AleRGuCm1CCcWAbb47mf1qB7WKinfYgoGy1-NZYU3uwNYT4AWL42sdsysagp6pUeSJhHl-wgHJgZ09I-9X1JDha83rQrQbCNpMDaRLC-FUCwTUsQfgLKewpQlAo1Wrn4s7ke3L2R2m-vLGk7Sl_b60MuyhyzDKoRFfLg1bBEIIZwe3BHjXBrVAEtxv7WldWKBfhG-Rs2wF2X8tuH-ij0ZiF4H3P06_pcozOlTrnbdNoNRj3BP7QaqGAIKPBp1oc-1AQzM4Eh6WwFVotnK0jx1l-6OIUWti1UQCyJDjUR4UPfzRf3gnxneD2sgBoDkCSAoIOEZVyTth6Wi_6dYDIUkaWPM_zcyZMLphkZKKU0pFpTtgnQDqy9XKieYJgqHsgmBJMe1pJMBchIhGD55pwFNFq37U1lBfLLKySbDNRlnHDDVR2LbyMRFP7QBv9v6KfOX21cubptYL6d4PDed2AfdHt6Os70Ch270EDCXviv5b6N_IeOD6Y9R46p7y_kfSHWQ_vPL4HI4_C1KGIX6xRU4P7CDAIex67bW09iBdhqvAWZsHZNHsAmwfdPOQEBOHrZRjCbJM8bN_5R7p3ftO88XHzFrF5Y3qBojyC6G7znrDIxVvN-59Rm3EgoO3qOg73voaCzG-mqsB4ELWCVjsvWk_YNnZ2vv4PwW1N-AZ-3K09_d14reJRApwXvutNCxjMx-FSBFOClqFIz4TkPP8rh0lQ93uGCf7kMOHiTspvcz1UGYexys5rfFxP4VSoaxhpGVw0mQD0IqQw-pStMXhy78GuH9nmsmPkcD0ppiKaekcBN72DJpe9g9JLr8q-jgGamIH-K_5UK-l9mzpKiA9fJ4O_eDp102sCXhPYNWE5EJITgQ8ENhzlrwnZNSE_IxQPGtNIlBMUxrWB1dmulRqkVXoIATO1rDoV8PrsvDJ2cRg7ZKhHI6Gr45VFwZ72LXI6i9xwnIeBZOs3sNA_70PyAoh_HvweQW4E2mTXz6EqW0ekRvkn4fsTVAiuw6Z1g--rke_4f3MCfHvyPxj5v3i8uxnud9y4P75jdMKyORXBKLNpTe130QYkyFX8eL6IxeUJc7AiuWPFvTqYqRVTBSvETK9oRmmSsiyls8OqTBUul1mieJrwgpYqZTyXS0bLVGhKcWZWmOAyYUiRYYF0saM8LZHKNE847viOLBN9FKZahJvpwrb7mXGu06s8RcpnlSh15eLlHrHWrxAXg398M2tX8SoeR84yqYzzbpLija_irwJKl93e1DsbIc_Xp2uiCJdbF2mIH739EkSotFAOvIWoEILG9hi1wNE4Z-r9rGur1R_-fSF6HGZqjMj_AwAA__-UiIUU">