fix assert in __deregister_frame_info_bases
The assertion in __deregister_frame_info_bases assumes that for every frame something was inserted into the lookup data structure by __register_frame_info_bases. Unfortunately, this does not necessarily hold true as the btree_insert call in __register_frame_info_bases will not insert anything for empty ranges. Therefore, we need to explicitly account for such empty ranges in the assertion as `ob` will be a null pointer for such ranges, hence causing the assertion to fail. Signed-off-by: Sören Tempel <soeren@soeren-tempel.net> libgcc/ChangeLog: * unwind-dw2-fde.c: Accept empty ranges when deregistering frames.
This commit is contained in:
parent
8d1c1b02d6
commit
9be9be828d
1 changed files with 3 additions and 1 deletions
|
@ -278,7 +278,9 @@ __deregister_frame_info_bases (const void *begin)
|
|||
__gthread_mutex_unlock (&object_mutex);
|
||||
#endif
|
||||
|
||||
gcc_assert (in_shutdown || ob);
|
||||
// If we didn't find anything in the lookup data structures then they
|
||||
// were either already destroyed or we tried to remove an empty range.
|
||||
gcc_assert (in_shutdown || ((range[1] - range[0]) == 0 || ob));
|
||||
return (void *) ob;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue