From: Aldy Hernandez Date: Fri, 3 Sep 2021 08:11:28 +0000 (+0200) Subject: Do not release state location until after path registry. X-Git-Tag: basepoints/gcc-13~4976 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b237eb9dfdada49d3f2bdfa98aa4a0b67fc1829d;p=thirdparty%2Fgcc.git Do not release state location until after path registry. We are popping state and then calling the registry code. This causes the registry to have incorrect information. This isn't visible in current trunk, but will be an issue when I submit further enhancements to the threading code. However, it is a cleanup on its own so I am pushing it now. Tested on x86-64 Linux. gcc/ChangeLog: * tree-ssa-threadedge.c (jump_threader::thread_across_edge): Move pop until after a thread is registered. --- diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index 37ee5c11be37..8a485125ff5a 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -1155,9 +1155,9 @@ jump_threader::thread_across_edge (edge e) { propagate_threaded_block_debug_into (path->last ()->e->dest, e->dest); - m_state->pop (); BITMAP_FREE (visited); m_registry->register_jump_thread (path); + m_state->pop (); return; } else