aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Biesinger <cbiesinger@google.com>2019-10-07 13:23:34 -0500
committerChristian Biesinger <cbiesinger@google.com>2019-10-07 17:30:22 -0500
commitbad5c02618a27f8f1c5c0858c323dba060aed905 (patch)
tree205bfb022d809d23f7134d6221f5852a42ef05d4
parent51f1fdc3d2235ffe94172b51d33fec0e5c5edeca (diff)
downloadgdb-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/ChangeLog7
-rw-r--r--gdb/c-lang.h6
-rw-r--r--gdb/cp-valprint.c2
-rw-r--r--gdb/stabsread.c6
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)