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 (®istered_frames, (uintptr_type) begin, 1, ob); btree_insert (®istered_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.