From c286bfe1e5c252689126cb2f45677bd36a2fdd56 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 19 Nov 2024 07:34:26 -0700 Subject: Clean up 0-length handling in gdbpy_create_lazy_string_object gdbpy_create_lazy_string_object will throw an exception if you pass it a NULL pointer without also setting length=0 -- the default, length==-1, will fail. This seems bizarre. Furthermore, it doesn't make sense to do this check for array types, as an array can have a zero length. This patch cleans up the check and makes it specific to TYPE_CODE_PTR. --- gdb/testsuite/gdb.python/py-lazy-string.exp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gdb/testsuite') diff --git a/gdb/testsuite/gdb.python/py-lazy-string.exp b/gdb/testsuite/gdb.python/py-lazy-string.exp index 0650c67..d212e61 100644 --- a/gdb/testsuite/gdb.python/py-lazy-string.exp +++ b/gdb/testsuite/gdb.python/py-lazy-string.exp @@ -48,6 +48,8 @@ gdb_test "python print(null.lazy_string(length=3).value())" \ gdb_test "python print(null.lazy_string(length=-2))" \ "ValueError.*: Invalid length.*Error occurred in Python.*" \ "bad length" +gdb_py_test_silent_cmd "python nullstr = null.lazy_string()" \ + "create null lazy string with default length" 1 foreach var_spec { { "ptr" "pointer" "const char \\*" -1 } \ { "array" "array" "const char \\[6\\]" 6 } \ -- cgit v1.1