From a38b832238eecf6611a338b39bb8f03f2968c26d Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 27 Apr 2023 13:25:27 -0600 Subject: [PATCH] Do not change type in get_discrete_low_bound get_discrete_low_bound has this code: /* Set unsigned indicator if warranted. */ if (low >= 0) type->set_is_unsigned (true); It's bad to modify a type in a getter like this, so this patch removes this code. FWIW I looked and this code has been there since at least 1999 (it was in the initial sourceware import). Types in general would benefit from const-ification, which would probably reveal more code like this, but I haven't attempted that. Regression tested on x86-64 Fedora 36. Reviewed-by: Kevin Buettner --- gdb/gdbtypes.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 6af59351b76..c8d5314bce7 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -1084,10 +1084,6 @@ get_discrete_low_bound (struct type *type) low = type->field (i).loc_enumval (); } - /* Set unsigned indicator if warranted. */ - if (low >= 0) - type->set_is_unsigned (true); - return low; } else -- 2.30.2