From: Tom de Vries Date: Thu, 22 Aug 2024 07:49:53 +0000 (+0200) Subject: [gdb/python] Eliminate catch(...) in type_to_type_object X-Git-Tag: gdb-16-branchpoint~1093 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=365b32b9c7792cb5fb67c658ea28b1c3a7a8ef71;p=thirdparty%2Fbinutils-gdb.git [gdb/python] Eliminate catch(...) in type_to_type_object In type_to_type_object we have: ... try { if (type->is_stub ()) type = check_typedef (type); } catch (...) { /* Just ignore failures in check_typedef. */ } ... The catch is supposed to ignore gdb_exception_error, but it ignores any exception. Fix that by only ignoring gdb_exception_error, and handling gdb_exception_quit / gdb_exception_forced_quit using GDB_PY_HANDLE_EXCEPTION. Tested on x86_64-linux. Approved-By: Tom Tromey --- diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index 863e6f6175f..c13b8610d37 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -1465,10 +1465,14 @@ type_to_type_object (struct type *type) if (type->is_stub ()) type = check_typedef (type); } - catch (...) + catch (const gdb_exception_error &) { /* Just ignore failures in check_typedef. */ } + catch (const gdb_exception &except) + { + GDB_PY_HANDLE_EXCEPTION (except); + } type_obj = PyObject_New (type_object, &type_object_type); if (type_obj)