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:
parent
3f2f83ddcb
commit
bed91f4da2
5 changed files with 75 additions and 8 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue