Handle var_zuinteger and var_zuinteger_unlimited from Python

PR python/20084 points out that the Python API doesn't handle the
var_zuinteger and var_zuinteger_unlimited parameter types.

This patch adds support for these types.

Regression tested on x86-64 Fedora 26.

ChangeLog
2018-05-02  Tom Tromey  <tom@tromey.com>

	PR python/20084:
	* python/python.c (gdbpy_parameter_value): Handle var_zuinteger
	and var_zuinteger_unlimited.
	* python/py-param.c (struct parm_constant): Add PARAM_ZUINTEGER
	and PARAM_ZUINTEGER_UNLIMITED.
	(set_parameter_value): Handle var_zuinteger and
	var_zuinteger_unlimited.
	(add_setshow_generic): Likewise.
	(parmpy_init): Likewise.

doc/ChangeLog
2018-05-02  Tom Tromey  <tom@tromey.com>

	PR python/20084:
	* python.texi (Parameters In Python): Document PARAM_ZUINTEGER and
	PARAM_ZUINTEGER_UNLIMITED.

testsuite/ChangeLog
2018-05-02  Tom Tromey  <tom@tromey.com>

	PR python/20084:
	* gdb.python/py-parameter.exp: Add PARAM_ZUINTEGER and
	PARAM_ZUINTEGER_UNLIMITED tests.
This commit is contained in:
Tom Tromey
2018-04-26 16:18:07 -06:00
parent d966ab2dc5
commit 0489430a0e
7 changed files with 112 additions and 9 deletions

View File

@ -467,6 +467,7 @@ gdbpy_parameter_value (enum var_types type, void *var)
Py_RETURN_NONE;
/* Fall through. */
case var_zinteger:
case var_zuinteger_unlimited:
return PyLong_FromLong (* (int *) var);
case var_uinteger:
@ -477,6 +478,12 @@ gdbpy_parameter_value (enum var_types type, void *var)
Py_RETURN_NONE;
return PyLong_FromUnsignedLong (val);
}
case var_zuinteger:
{
unsigned int val = * (unsigned int *) var;
return PyLong_FromUnsignedLong (val);
}
}
return PyErr_Format (PyExc_RuntimeError,