From patchwork Mon Aug 26 01:34:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 34267 Received: (qmail 91037 invoked by alias); 26 Aug 2019 01:34:43 -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 91029 invoked by uid 89); 26 Aug 2019 01:34:42 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: simark.ca Received: from simark.ca (HELO simark.ca) (158.69.221.121) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 26 Aug 2019 01:34:41 +0000 Received: from [10.0.0.193] (unknown [192.222.164.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 91B4F1F344; Sun, 25 Aug 2019 21:34:39 -0400 (EDT) Subject: Re: Breakage on builder NetBSD-x86_64-m64, revision beadd3e84ed8e652015f07eb4734a6d3b17e79cb To: gdb-buildbot@sergiodj.net, gdb-patches@sourceware.org, Simon Marchi References: From: Simon Marchi Message-ID: Date: Sun, 25 Aug 2019 21:34:38 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: On 2019-08-25 6:41 p.m., gdb-buildbot@sergiodj.net wrote: > Unfortunately it seems that there is a breakage on GDB. > > Commit title: 'dwarf2read: replace gdb::optional with enum' > Revision: beadd3e84ed8e652015f07eb4734a6d3b17e79cb > > You can find more details below: I pushed the following patch to try to fix this. From 23c13d42999cdcf9d224f089891fd3f3c8bdc6aa Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Sun, 25 Aug 2019 21:30:02 -0400 Subject: [PATCH] dwarf2read: fix compilation issue with gcc 4.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gcc 4.8 (and probably other versions too) doesn't like that the local variable symbol_linkage has the same name as the enum class defined in the same context: CXX dwarf2read.o /home/smarchi/src/binutils-gdb/gdb/dwarf2read.c: In member function ‘dwarf2_per_cu_data* dw2_debug_names_iterator::next()’: /home/smarchi/src/binutils-gdb/gdb/dwarf2read.c:5850:22: error: ‘symbol_linkage’ is not a class, namespace, or enumeration } symbol_linkage = symbol_linkage::unknown; ^ Rename the local variable to avoid this. This problem was originally reported with the Netbsd builder on the buildbot, which uses gcc 5.5, I believe. I am not able to test it on that builder right now, but chances are that the fix will work there too. gdb/ChangeLog: * dwarf2read.c (dw2_debug_names_iterator::next): Rename local variable symbol_linkage to symbol_linkage_. --- gdb/ChangeLog | 5 +++++ gdb/dwarf2read.c | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5f64ca6d4a94..d4b1e539c392 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-08-25 Simon Marchi + + * dwarf2read.c (dw2_debug_names_iterator::next): Rename local + variable symbol_linkage to symbol_linkage_. + 2019-08-25 Simon Marchi * dwarf2read.c (dw2_debug_names_iterator::next): Use enum to diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index a0b989fd0c2e..af4af195a092 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -5847,7 +5847,7 @@ dw2_debug_names_iterator::next () unknown, static_, extern_, - } symbol_linkage = symbol_linkage::unknown; + } symbol_linkage_ = symbol_linkage::unknown; dwarf2_per_cu_data *per_cu = NULL; for (const mapped_debug_names::index_val::attr &attr : indexval.attr_vec) { @@ -5899,12 +5899,12 @@ dw2_debug_names_iterator::next () case DW_IDX_GNU_internal: if (!m_map.augmentation_is_gdb) break; - symbol_linkage = symbol_linkage::static_; + symbol_linkage_ = symbol_linkage::static_; break; case DW_IDX_GNU_external: if (!m_map.augmentation_is_gdb) break; - symbol_linkage = symbol_linkage::extern_; + symbol_linkage_ = symbol_linkage::extern_; break; } } @@ -5914,10 +5914,11 @@ dw2_debug_names_iterator::next () goto again; /* Check static vs global. */ - if (symbol_linkage != symbol_linkage::unknown && m_block_index.has_value ()) + if (symbol_linkage_ != symbol_linkage::unknown && m_block_index.has_value ()) { const bool want_static = *m_block_index == STATIC_BLOCK; - const bool symbol_is_static = symbol_linkage == symbol_linkage::static_; + const bool symbol_is_static = + symbol_linkage_ == symbol_linkage::static_; if (want_static != symbol_is_static) goto again; }