From: Tom Tromey Date: Thu, 27 Apr 2023 19:25:27 +0000 (-0600) Subject: Do not change type in get_discrete_low_bound X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a38b832238eecf6611a338b39bb8f03f2968c26d;p=binutils-gdb.git 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 --- 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