From: Thomas Neumann Date: Mon, 15 May 2023 12:59:22 +0000 (+0200) Subject: fix assert in non-atomic path X-Git-Tag: basepoints/gcc-15~9282 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30adfb85ff994c0faa0cc556ba46838b218263f5;p=thirdparty%2Fgcc.git fix assert in non-atomic path The non-atomic path does not have range information, we have to adjust the assert handle that case, too. libgcc/ChangeLog: * unwind-dw2-fde.c: Fix assert in non-atomic path. --- diff --git a/libgcc/unwind-dw2-fde.c b/libgcc/unwind-dw2-fde.c index 8683a65aa025..a5786bf729ce 100644 --- a/libgcc/unwind-dw2-fde.c +++ b/libgcc/unwind-dw2-fde.c @@ -240,6 +240,7 @@ __deregister_frame_info_bases (const void *begin) // And remove ob = btree_remove (®istered_frames, range[0]); + bool empty_table = (range[1] - range[0]) == 0; #else init_object_mutex_once (); __gthread_mutex_lock (&object_mutex); @@ -276,11 +277,12 @@ __deregister_frame_info_bases (const void *begin) out: __gthread_mutex_unlock (&object_mutex); + const int empty_table = 0; // The non-atomic path stores all tables. #endif // 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)); + gcc_assert (in_shutdown || (empty_table || ob)); return (void *) ob; }