https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111731

--- Comment #5 from Dimitar Yordanov <dimitar.yordanov at sap dot com> ---
> It looks like the code does not find an unwind frame when de-registering an 
> exception handler

>From what I understand so far the issue is already there when doing the
registration. There is twice a call to btree_insert:

btree_insert (&registered_frames, (uintptr_type) begin, 1, ob);
btree_insert (&registered_frames, range[0], range[1] - range[0], ob);

for those, calls when "range[0]" is before "begin" with the same "ob" the next
search for removing will return the slot where range[0] is not the one of
begin. Because of the way "btree_node_find_leaf_slot" works, doing a 

if (n->content.entries[index].base + n->content.entries[index].size > value)

which is true for the second insert call even if we want to find the slot for
the first insert.

Reply via email to