aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/gdbtypes.c8
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)