[PATCH 4/9] gdb: remove LA_VALUE_PRINT macro
Andrew Burgess
andrew.burgess@embecosm.com
Mon Oct 12 14:46:32 GMT 2020
Remove the LA_VALUE_PRINT macro, and replace its uses with direct
calls to the value_print member function on an appropriate language.
In the global 'value_print' function, we call the value_print method
on the current_language, this is a direct inline replacement of the
old LA_VALUE_PRINT macro.
However, in ada-lang.c, and language.c the macro was being used
within the print_array_index member function of a language class. In
these cases we now call the value_print member function of the current
language class.
In theory, when we are inside (for example) the
ada_language::print_array_index function the current_language should
always be set to Ada, so this change should have no effect. However,
if we ever could get into ada_language::print_array_index with the
current language set to something else (which I think would have been
a bug) then we would now see a change in behaviour. I couldn't find
any cases where this happened though.
There should be no user visible changes after this commit, but it is
not impossible in some edge cases.
gdb/ChangeLog:
* ada-lang.c (ada_language::print_array_index): Call value_print
directly.
* language.c (language_defn::print_array_index): Likewise.
* language.h (LA_VALUE_PRINT): Delete.
* valprint.c (value_print): Call value_print on the
current_language directly.
---
gdb/ChangeLog | 9 +++++++++
gdb/ada-lang.c | 2 +-
gdb/language.c | 2 +-
gdb/language.h | 3 ---
gdb/valprint.c | 2 +-
5 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index be6d0e1d019..3a74de15bf6 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -13721,7 +13721,7 @@ class ada_language : public language_defn
{
struct value *index_value = val_atr (index_type, index);
- LA_VALUE_PRINT (index_value, stream, options);
+ value_print (index_value, stream, options);
fprintf_filtered (stream, " => ");
}
diff --git a/gdb/language.c b/gdb/language.c
index ffc1e85503a..4053cb76885 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -622,7 +622,7 @@ language_defn::print_array_index (struct type *index_type, LONGEST index,
struct value *index_value = value_from_longest (index_type, index);
fprintf_filtered (stream, "[");
- LA_VALUE_PRINT (index_value, stream, options);
+ value_print (index_value, stream, options);
fprintf_filtered (stream, "] = ");
}
diff --git a/gdb/language.h b/gdb/language.h
index 3452149c9ca..c85f90f8b4b 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -644,9 +644,6 @@ extern enum language set_language (enum language);
#define LA_PRINT_TYPE(type,varstring,stream,show,level,flags) \
(current_language->print_type(type,varstring,stream,show,level,flags))
-#define LA_VALUE_PRINT(val,stream,options) \
- (current_language->value_print (val,stream,options))
-
#define LA_PRINT_CHAR(ch, type, stream) \
(current_language->printchar (ch, type, stream))
#define LA_PRINT_STRING(stream, elttype, string, length, encoding, force_ellipses, options) \
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 0749f38983e..5d43a4cc6b1 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -1148,7 +1148,7 @@ value_print (struct value *val, struct ui_file *stream,
return;
}
- LA_VALUE_PRINT (val, stream, options);
+ current_language->value_print (val, stream, options);
}
static void
--
2.25.4
More information about the Gdb-patches
mailing list