aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-valprint.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2020-03-30 11:50:35 -0600
committerTom Tromey <tromey@adacore.com>2020-03-30 11:54:50 -0600
commitd8af906814bd69dad694e475288401b1dee6ac3a (patch)
tree0e95af57f2a2ff0ca8fb515d6b12ff62c2d7498d /gdb/ada-valprint.c
parent00386881a3d0f7ac89fcc5cc912da8cd69c04324 (diff)
downloadgdb-d8af906814bd69dad694e475288401b1dee6ac3a.zip
gdb-d8af906814bd69dad694e475288401b1dee6ac3a.tar.gz
gdb-d8af906814bd69dad694e475288401b1dee6ac3a.tar.bz2
Change ada_which_variant_applies to value API
While debugging an Ada regression, I noticed that all the callers of ada_which_variant_applies desconstruct a value, only to have it be reconstructed by this function. This patch removes this inefficiency in favor of simply passing in the value directly. Tested on x86-64 Fedora 30. gdb/ChangeLog 2020-03-30 Tom Tromey <tromey@adacore.com> * ada-valprint.c (print_variant_part): Update. * ada-lang.h (ada_which_variant_applies): Update. * ada-lang.c (ada_which_variant_applies): Remove outer_type and outer_valaddr parameters; replace with "outer" value parameter. (to_fixed_variant_branch_type): Update.
Diffstat (limited to 'gdb/ada-valprint.c')
-rw-r--r--gdb/ada-valprint.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index 59ada24..2f2375a 100644
--- a/gdb/ada-valprint.c
+++ b/gdb/ada-valprint.c
@@ -560,9 +560,7 @@ print_variant_part (struct value *value, int field_num,
{
struct type *type = value_type (value);
struct type *var_type = TYPE_FIELD_TYPE (type, field_num);
- int which = ada_which_variant_applies (var_type,
- value_type (outer_value),
- value_contents (outer_value));
+ int which = ada_which_variant_applies (var_type, outer_value);
if (which < 0)
return 0;