https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118077
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2024-12-17 Ever confirmed|0 |1 --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > It is more closely related to PR 117665 yes it is. Before EVRP: ;; basic block 3, loop depth 0 ;; pred: 2 _15 = MEM[(struct b *)this_6(D)]._vptr.b; _16 = *_15; _17 = b::c (_1); ;; succ: 4 ;; 5 Afterwards: ;; basic block 3, loop depth 0 ;; pred: 2 _15 = MEM[(struct b *)this_6(D)]._vptr.b; _16 = *_15; ;; succ: 4 ;; 5 VRP should have cleaned up the abormal edge here. Folding statement: _17 = b::c (_1); Queued stmt for removal. Folds to: 0 Folding statement: _setjmp (); Not folded Folding statement: .ABNORMAL_DISPATCHER (0); Not folded Folding statement: return; Not folded Removing dead stmt:_17 = b::c (_1); Removing dead stmt:_1 = &this_6(D)->D.2889; Let me look into this.