From patchwork Mon Oct 7 18:27:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Terekhov, Mikhail via Gdb-patches" X-Patchwork-Id: 34853 Received: (qmail 110951 invoked by alias); 7 Oct 2019 18:27:18 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 110726 invoked by uid 89); 7 Oct 2019 18:27:18 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-21.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=type_name, TYPE_NAME, H*MI:google, truth X-HELO: mail-pl1-f201.google.com Received: from mail-pl1-f201.google.com (HELO mail-pl1-f201.google.com) (209.85.214.201) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 07 Oct 2019 18:27:16 +0000 Received: by mail-pl1-f201.google.com with SMTP id v2so9137581plp.14 for ; Mon, 07 Oct 2019 11:27:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=lJ5krEwNRX9HYvn3dvZTv4KQYTr5eRnm7msocm4FU8o=; b=hS6GFfYk8Iq5S1n2dBZLzALIEwYiNkx0v5Sf2beF88045YbCNy1Kiab0XE0z60euso x0FInoMPiVX+LtDJOhC8LvqamnhY7Qzm1vITQWNC8xiWxKyU6ljoUh2Z6NiidVEJFs8F ca7lJ8mkepxQ6kkFvwia2cK+ZalCOZv3wycA2NvifZqJwMmL2ZYJE8/oI4zk3FQZDQp6 0faiCPVtxOmeZd2/pfvc4TXhIFt7/DIPmwPbUoedWsuEqoYcWNtQhFfPttTbaKz1tJO+ uDfjlndEH/tikUPCf2WbNNaXRiFT8MUXD6VB6whbTrzH4lz482WChlPf4e4hkNFgSJMi cLeA== Date: Mon, 7 Oct 2019 13:27:12 -0500 Message-Id: <20191007182712.26171-1-cbiesinger@google.com> Mime-Version: 1.0 Subject: [PATCH] Move declaration of vtbl_ptr_name to the header. X-Patchwork-Original-From: "Christian Biesinger via gdb-patches" From: "Terekhov, Mikhail via Gdb-patches" Reply-To: Christian Biesinger To: gdb-patches@sourceware.org Cc: Christian Biesinger X-IsSubscribed: yes 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 * 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. --- gdb/c-lang.h | 6 ++++++ gdb/cp-valprint.c | 2 +- gdb/stabsread.c | 6 +----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gdb/c-lang.h b/gdb/c-lang.h index d95df54c83..de291fa8f1 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 e73b0e27fa..04be4dc83b 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 da455da365..fa2521f1ca 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 @@ -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)