diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2015-10-21 15:57:22 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2015-10-21 15:57:22 -0400 |
commit | bed91f4da252b5f30d3cb4fd9f9febd61ad9560d (patch) | |
tree | 863ae6006d0e18b2f383713c3048d0e4287266ee /gdb/python | |
parent | 3f2f83ddcba5b04389dd3c666ce7d4cace7e5b63 (diff) | |
download | gdb-bed91f4da252b5f30d3cb4fd9f9febd61ad9560d.zip gdb-bed91f4da252b5f30d3cb4fd9f9febd61ad9560d.tar.gz gdb-bed91f4da252b5f30d3cb4fd9f9febd61ad9560d.tar.bz2 |
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.
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/py-type.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index 7b3f8f9..ef4e719 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -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; } |