From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25585 invoked by alias); 6 Jun 2016 19:23:01 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 25489 invoked by uid 89); 6 Jun 2016 19:23:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:2516, 5207, 520,7 X-HELO: mail-lf0-f65.google.com Received: from mail-lf0-f65.google.com (HELO mail-lf0-f65.google.com) (209.85.215.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Mon, 06 Jun 2016 19:22:53 +0000 Received: by mail-lf0-f65.google.com with SMTP id s186so7686438lfs.2 for ; Mon, 06 Jun 2016 12:22:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=ATyzGBiDDUL6U8k44x8VsMdPLwg7Q4V4+T9BXrAss9U=; b=DBWv9LDDsEgAF87ArltrZqof8OsPW/8ojeHM/3/2HLryi+M5sCOWpQRn+U7TJSWsQY jBn8GlGo3b3ycIQw9TgLrMS1UfD1EO8dM0nF5Q5YpK4U6jtYr5t7c5y5EX+3G+XMF+Jg EwYlwhwHFT/dZ4ANvOhbxPBVCP1mDU0XIORRp9aDtnmB9vOXguzN8UyKmCdvH6cL6oX0 Q15PoX4+ShvXwwP22aIpaN+SFMkIBEqWyQ/IPNHSOLde5sbLBNA46ZyUsOHcCDDwQlk+ Z5xk1h4pW4JUEqDwbS1IBp+b7uN7Xo9M1tmKClJgiq+wcDoHFvuha4oa24UBGNZV3WFg ioCA== X-Gm-Message-State: ALyK8tJiQqlZK8Zcg/UYA8bE9ts5MiKECcL6n4BsSYME3WFYKYq0dHubkdPxq2kXKwxpNA== X-Received: by 10.25.210.142 with SMTP id j136mr1492601lfg.68.1465240969979; Mon, 06 Jun 2016 12:22:49 -0700 (PDT) Received: from localhost.localdomain (broadband-90-154-70-138.nationalcablenetworks.ru. [90.154.70.138]) by smtp.gmail.com with ESMTPSA id jv7sm1970253lbc.4.2016.06.06.12.22.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Jun 2016 12:22:49 -0700 (PDT) From: Artemiy Volkov To: gdb-patches@sourceware.org Cc: palves@redhat.com, keiths@redhat.com, Artemiy Volkov Subject: [PATCH v5 05/11] [PR gdb/14441] gdb: demangle: implement demangling for rvalue reference typenames Date: Mon, 06 Jun 2016 19:23:00 -0000 Message-Id: <20160606192225.12384-6-artemiyv@acm.org> In-Reply-To: <20160606192225.12384-1-artemiyv@acm.org> References: <1458593958-25656-1-git-send-email-artemiyv@acm.org> <20160606192225.12384-1-artemiyv@acm.org> X-IsSubscribed: yes X-SW-Source: 2016-06/txt/msg00110.txt.bz2 This patch fixes demangling of names containing rvalue reference typenames by handling DEMANGLE_COMPONENT_RVALUE_REFERENCE demangle component. gdb/ChangeLog: 2016-06-06 Artemiy Volkov PR gdb/14441 * cp-name-parser.y (ptr_operator): Handle the '&&' token in typename. * cp-support.c (replace_typedefs): Handle DEMANGLE_COMPONENT_RVALUE_REFERENCE. * python/py-type.c (typy_lookup_type): Likewise. --- gdb/cp-name-parser.y | 4 ++++ gdb/cp-support.c | 1 + gdb/python/py-type.c | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y index c6a5c34..33fdcea 100644 --- a/gdb/cp-name-parser.y +++ b/gdb/cp-name-parser.y @@ -769,6 +769,10 @@ ptr_operator : '*' qualifiers_opt { $$.comp = make_empty (DEMANGLE_COMPONENT_REFERENCE); $$.comp->u.s_binary.left = $$.comp->u.s_binary.right = NULL; $$.last = &d_left ($$.comp); } + | ANDAND + { $$.comp = make_empty (DEMANGLE_COMPONENT_RVALUE_REFERENCE); + $$.comp->u.s_binary.left = $$.comp->u.s_binary.right = NULL; + $$.last = &d_left ($$.comp); } | nested_name '*' qualifiers_opt { $$.comp = make_empty (DEMANGLE_COMPONENT_PTRMEM_TYPE); $$.comp->u.s_binary.left = $1.comp; diff --git a/gdb/cp-support.c b/gdb/cp-support.c index 5662f86..a917ede 100644 --- a/gdb/cp-support.c +++ b/gdb/cp-support.c @@ -520,6 +520,7 @@ replace_typedefs (struct demangle_parse_info *info, case DEMANGLE_COMPONENT_RESTRICT_THIS: case DEMANGLE_COMPONENT_POINTER: case DEMANGLE_COMPONENT_REFERENCE: + case DEMANGLE_COMPONENT_RVALUE_REFERENCE: replace_typedefs (info, d_left (ret_comp), finder, data); break; diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index 6103a2b..4ec920e 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -811,6 +811,7 @@ typy_lookup_type (struct demangle_component *demangled, if (demangled_type == DEMANGLE_COMPONENT_POINTER || demangled_type == DEMANGLE_COMPONENT_REFERENCE + || demangled_type == DEMANGLE_COMPONENT_RVALUE_REFERENCE || demangled_type == DEMANGLE_COMPONENT_CONST || demangled_type == DEMANGLE_COMPONENT_VOLATILE) { @@ -829,6 +830,9 @@ typy_lookup_type (struct demangle_component *demangled, case DEMANGLE_COMPONENT_REFERENCE: rtype = lookup_lvalue_reference_type (type); break; + case DEMANGLE_COMPONENT_RVALUE_REFERENCE: + rtype = lookup_rvalue_reference_type (type); + break; case DEMANGLE_COMPONENT_POINTER: rtype = lookup_pointer_type (type); break; -- 2.8.3