https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118865
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to scott snyder from comment #7)> > This does not warn with gcc14, but does with gcc15, even with your > proposed patch. This looks like a different missed optimization: ``` _30 = listJets.D.32199._M_impl._M_node.D.14392._M_next; if (&listJets.D.32199._M_impl._M_node.D.14392 == _30) goto <bb 19>; [5.50%] else goto <bb 9>; [94.50%] <bb 9> [local count: 118111600]: if (&MEM[(struct _List_node_header *)&listJets].D.14392 != _30) goto <bb 10>; [89.00%] else goto <bb 22>; [11.00%] ``` But `&MEM[(struct _List_node_header *)&listJets].D.14392` and `&listJets.D.32199._M_impl._M_node.D.14392` are the same value. Can you file this new testcase seperately? I will look more into it later tonight/tomorrow to see why there is a missed optimization.