aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2020-12-09 14:49:02 -0500
committerSimon Marchi <simon.marchi@polymtl.ca>2020-12-09 14:49:15 -0500
commit6ad368b8caf6650852983fc23814c9f393da0439 (patch)
tree8e0d02c1ef4fce05c41b6ed9ef8f0f012f4714db
parent5b56203a7cadd545b33713e98e274e582242e090 (diff)
downloadgdb-6ad368b8caf6650852983fc23814c9f393da0439.zip
gdb-6ad368b8caf6650852983fc23814c9f393da0439.tar.gz
gdb-6ad368b8caf6650852983fc23814c9f393da0439.tar.bz2
gdb: address review comments of previous series
I forgot to include fixes for review comments I got before pushing the previous commits (or I pushed the wrong commits). This one fixes it. - Return {} instead of false in get_discrete_low_bound and get_discrete_high_bound. - Compute high bound after confirming low bound is valid in get_discrete_bounds. gdb/ChangeLog: * gdbtypes.c (get_discrete_low_bound, get_discrete_high_bound): Return {} instead of false. (get_discrete_bounds): Compute high bound only if low bound is valid. Change-Id: I5f9a66b3672adfac9441068c899ab113ab2c331a
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/gdbtypes.c14
2 files changed, 15 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0e01628..afdfc77 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2020-12-09 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * gdbtypes.c (get_discrete_low_bound, get_discrete_high_bound):
+ Return {} instead of false.
+ (get_discrete_bounds): Compute high bound only if low bound is
+ valid.
+
2020-12-09 Simon Marchi <simon.marchi@efficios.com>
PR 26875, PR 26901
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 9a17008..3e489fd 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1093,7 +1093,7 @@ get_discrete_low_bound (struct type *type)
case TYPE_CODE_INT:
if (TYPE_LENGTH (type) > sizeof (LONGEST)) /* Too big */
- return false;
+ return {};
if (!type->is_unsigned ())
return -(1 << (TYPE_LENGTH (type) * TARGET_CHAR_BIT - 1));
@@ -1103,7 +1103,7 @@ get_discrete_low_bound (struct type *type)
return 0;
default:
- return false;
+ return {};
}
}
@@ -1160,7 +1160,7 @@ get_discrete_high_bound (struct type *type)
case TYPE_CODE_INT:
if (TYPE_LENGTH (type) > sizeof (LONGEST)) /* Too big */
- return false;
+ return {};
if (!type->is_unsigned ())
{
@@ -1179,7 +1179,7 @@ get_discrete_high_bound (struct type *type)
}
default:
- return false;
+ return {};
}
}
@@ -1189,9 +1189,11 @@ bool
get_discrete_bounds (struct type *type, LONGEST *lowp, LONGEST *highp)
{
gdb::optional<LONGEST> low = get_discrete_low_bound (type);
- gdb::optional<LONGEST> high = get_discrete_high_bound (type);
+ if (!low.has_value ())
+ return false;
- if (!low.has_value () || !high.has_value ())
+ gdb::optional<LONGEST> high = get_discrete_high_bound (type);
+ if (!high.has_value ())
return false;
*lowp = *low;