diff options
author | Christian Biesinger <cbiesinger@google.com> | 2019-10-07 13:23:34 -0500 |
---|---|---|
committer | Christian Biesinger <cbiesinger@google.com> | 2019-10-07 17:30:22 -0500 |
commit | bad5c02618a27f8f1c5c0858c323dba060aed905 (patch) | |
tree | 205bfb022d809d23f7134d6221f5852a42ef05d4 | |
parent | 51f1fdc3d2235ffe94172b51d33fec0e5c5edeca (diff) | |
download | gdb-bad5c02618a27f8f1c5c0858c323dba060aed905.zip gdb-bad5c02618a27f8f1c5c0858c323dba060aed905.tar.gz gdb-bad5c02618a27f8f1c5c0858c323dba060aed905.tar.bz2 |
Move declaration of vtbl_ptr_name to the header.
There are conflicting comments about whether this was
introduced in GCC 2.4.5 or GCC 2.6 and I don't know
which one is correct...
gdb/ChangeLog:
2019-10-07 Christian Biesinger <cbiesinger@google.com>
* c-lang.h (vtbl_ptr_name): Declare.
* cp-valprint.c (vtbl_ptr_name): Remove "extern" now that we get
it from the header.
* stabsread.c (define_symbol): Remove declaration of vtbl_ptr_name.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/c-lang.h | 6 | ||||
-rw-r--r-- | gdb/cp-valprint.c | 2 | ||||
-rw-r--r-- | gdb/stabsread.c | 6 |
4 files changed, 15 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0f79f2d..3912429 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2019-10-07 Christian Biesinger <cbiesinger@google.com> + * c-lang.h (vtbl_ptr_name): Declare. + * cp-valprint.c (vtbl_ptr_name): Remove "extern" now that we get + it from the header. + * stabsread.c (define_symbol): Remove declaration of vtbl_ptr_name. + +2019-10-07 Christian Biesinger <cbiesinger@google.com> + * charset.c (your_gdb_wchar_t_is_bogus): Replace with a gdb_static_assert. diff --git a/gdb/c-lang.h b/gdb/c-lang.h index d95df54..de291fa 100644 --- a/gdb/c-lang.h +++ b/gdb/c-lang.h @@ -144,6 +144,12 @@ extern void cp_print_value_fields_rtti (struct type *, const struct value_print_options *, struct type **, int); +/* gcc-2.6 or later (when using -fvtable-thunks) + emits a unique named type for a vtable entry. + Some gdb code depends on that specific name. */ + +extern const char vtbl_ptr_name[]; + extern int cp_is_vtbl_ptr_type (struct type *); extern int cp_is_vtbl_member (struct type *); diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index e73b0e2..04be4dc 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -56,7 +56,7 @@ static void cp_print_value (struct type *, struct type *, /* GCC versions after 2.4.5 use this. */ -extern const char vtbl_ptr_name[] = "__vtbl_ptr_type"; +const char vtbl_ptr_name[] = "__vtbl_ptr_type"; /* Return truth value for assertion that TYPE is of the type "pointer to virtual function". */ diff --git a/gdb/stabsread.c b/gdb/stabsread.c index da455da..fa2521f 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -42,6 +42,7 @@ #include "gdb-demangle.h" #include "language.h" #include "target-float.h" +#include "c-lang.h" #include "cp-abi.h" #include "cp-support.h" #include <ctype.h> @@ -1259,11 +1260,6 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type, if (TYPE_NAME (SYMBOL_TYPE (sym)) == NULL) { - /* gcc-2.6 or later (when using -fvtable-thunks) - emits a unique named type for a vtable entry. - Some gdb code depends on that specific name. */ - extern const char vtbl_ptr_name[]; - if ((TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_PTR && strcmp (SYMBOL_LINKAGE_NAME (sym), vtbl_ptr_name)) || TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_FUNC) |