mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-24 18:57:01 +08:00
Fix accessing a function's fields (parameters) from Python (PR 18073)
Since 7.4, gdb doesn't allow calling .fields() on a function type, even though the documentation states it should return a list corresponding to the function's parameters. This patch restores the intended behaviour and adds a test for it. Reg-tested on Arch Linux x86-64. gdb/ChangeLog: PR python/18073 * python/py-type.c (typy_get_composite): Allow returning a function type. gdb/testsuite/ChangeLog: PR python/18073 * gdb.python/py-type.c (C::a_method): New. (C::a_const_method): New. (C::a_static_method): New. (a_function): New. * gdb.python/py-type.exp (test_fields): Test getting fields from function and method.
This commit is contained in:
@ -495,10 +495,11 @@ typy_get_composite (struct type *type)
|
||||
exception. */
|
||||
if (TYPE_CODE (type) != TYPE_CODE_STRUCT
|
||||
&& TYPE_CODE (type) != TYPE_CODE_UNION
|
||||
&& TYPE_CODE (type) != TYPE_CODE_ENUM)
|
||||
&& TYPE_CODE (type) != TYPE_CODE_ENUM
|
||||
&& TYPE_CODE (type) != TYPE_CODE_FUNC)
|
||||
{
|
||||
PyErr_SetString (PyExc_TypeError,
|
||||
"Type is not a structure, union, or enum type.");
|
||||
"Type is not a structure, union, enum, or function type.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user