https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103405
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- DSE removes a few stores even though they are used in the check. _18 = .gnat_malloc (4); MEM[(integer *)_18] = 1; ;; this one FRAME.2.i = _18; _17 = .gnat_malloc (4); MEM[(integer *)_17] = 0; ;; this one FRAME.2.j = _17; c67005c.B_1.check (0); [static-chain: &FRAME.2] _16 = .gnat_malloc (4); MEM[(integer *)_16] = 0; ;; this one FRAME.2.i = _16; c67005c.B_1.check (1); [static-chain: &FRAME.2] report.result ();