From patchwork Thu Nov 27 00:50:06 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Evans X-Patchwork-Id: 3965 Received: (qmail 23557 invoked by alias); 27 Nov 2014 00:50:12 -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 23545 invoked by uid 89); 27 Nov 2014 00:50:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mail-ig0-f202.google.com Received: from mail-ig0-f202.google.com (HELO mail-ig0-f202.google.com) (209.85.213.202) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 27 Nov 2014 00:50:10 +0000 Received: by mail-ig0-f202.google.com with SMTP id hn18so463321igb.3 for ; Wed, 26 Nov 2014 16:50:08 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-type; bh=0z5YFYVbuVG+4MthTgrwcnvJ3UeeRBRBIkYZRrM+XdA=; b=P/dDGxSJJ3XmKUTnQDzoKhPg/bZh5FF1LH2GMM9ESFdxyBDNJ7xGA1o6BNlt1j0RSP 6ISN/A+qGL5oYhnFbDkjgxd3X1EcdxceIlX1aZmuxMFDZuPaCvMPqa5TxQ4MZJEK0pwB YcqGq943JKth4kWyZrNDcmLbf4oJPkJN2B0E2ztO0juSDNCK7v4NrI2l4S1DRVn1SQS6 kVCMKHwL3aolYomoAWk37KUXHSIAopiNH10oiClrOxVL2I783Ve3C17p3fohEmN5dQdv hSIU7yfPHxIp9ZsoOB3Yy27NL+gtn4OUSInNCD1/HM594jVrKfPWiwMyXXRDFCuxG7WY tvtQ== X-Gm-Message-State: ALoCoQm1kgf47pMeddbN6XIcZAeb4BVp7X2bVberY9vMmI2mlaOyjqo7wkD5tjIOG1KaGd0O4TepZxi1XFQlP4ufI0oyeumCMnfpFvmoNpbJML28xROVAIW5RimlzGi1FAEJikfjaUkvmocXroVCTLlATUyvbGmOsc6RxdgD/GwAchPf2byJsOw= X-Received: by 10.50.111.170 with SMTP id ij10mr31937043igb.1.1417049407920; Wed, 26 Nov 2014 16:50:07 -0800 (PST) Received: from corpmail-nozzle1-2.hot.corp.google.com ([100.108.1.103]) by gmr-mx.google.com with ESMTPS id k66si227484yho.7.2014.11.26.16.50.07 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 26 Nov 2014 16:50:07 -0800 (PST) Received: from ruffy.mtv.corp.google.com ([172.17.128.44]) by corpmail-nozzle1-2.hot.corp.google.com with ESMTPS id gbtZM7IA.1; Wed, 26 Nov 2014 16:50:07 -0800 From: Doug Evans To: gdb-patches@sourceware.org Subject: [PATCH] [PR symtab/17591] Better fix Date: Wed, 26 Nov 2014 16:50:06 -0800 Message-ID: MIME-Version: 1.0 X-IsSubscribed: yes Hi. PR 17591 is about handling stripping parameters from the name to be looked up when the string also contains "(anonymous namespace)". [btw, I think an audit of gdb is in order: I'm finding more of these.] This patch does this using the same mechanism psymtab.c does: cp_remove_params. Regression tested on amd64-linux, with gdb_index. 2014-11-26 Doug Evans PR symtab/17591 * dwarf2read.c (find_slot_in_mapped_hash): Use cp_remove_params to strip parameters. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 0790388..2b7f8ff 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -2918,22 +2918,16 @@ find_slot_in_mapped_hash (struct mapped_index *index, const char *name, { /* NAME is already canonical. Drop any qualifiers as .gdb_index does not contain any. */ - const char *paren = NULL; - /* Need to handle "(anonymous namespace)". */ - if (*name != '(') - paren = strchr (name, '('); - - if (paren) + if (strchr (name, '(') != NULL) { - char *dup; - - dup = xmalloc (paren - name + 1); - memcpy (dup, name, paren - name); - dup[paren - name] = 0; + char *without_params = cp_remove_params (name); - make_cleanup (xfree, dup); - name = dup; + if (without_params != NULL) + { + make_cleanup (xfree, without_params); + name = without_params; + } } }