diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbtypes.c | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 26d7f58..ac4caf0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-12-24 Lancelot SIX <lsix@lancelotsix.com> + + * gdbtypes.c (is_scalar_type_recursive): Prevent comparison + between uninitialized values. + 2020-12-23 Andrew Burgess <andrew.burgess@embecosm.com> * expprint.c (print_subexp_standard): Replace uses of diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 569e7a3..a6589c4 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -3665,9 +3665,11 @@ is_scalar_type_recursive (struct type *t) LONGEST low_bound, high_bound; struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (t)); - get_discrete_bounds (t->index_type (), &low_bound, &high_bound); - - return high_bound == low_bound && is_scalar_type_recursive (elt_type); + if (get_discrete_bounds (t->index_type (), &low_bound, &high_bound)) + return (high_bound == low_bound + && is_scalar_type_recursive (elt_type)); + else + return 0; } /* Are we dealing with a struct with one element? */ else if (t->code () == TYPE_CODE_STRUCT && t->num_fields () == 1) |