From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) by sourceware.org (Postfix) with ESMTPS id 60B503858C56 for ; Fri, 7 Oct 2022 14:22:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 60B503858C56 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=acm.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-qt1-x835.google.com with SMTP id fb18so2842034qtb.12 for ; Fri, 07 Oct 2022 07:22:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:sender:from:to:cc:subject:date:message-id:reply-to; bh=0eL75fbECUMHPdLWziDdHf0M2rBQ+ZJxO4ZG//pF8Yc=; b=VnOfYpr9vSvuGAJERHvJBPFQr/bhlDHodpPO0NzCKCNlEflxldutOfHdiboMdxZk8e /tJETpS8Jsh5XpFpAa21ZUx+NCWRruPhwRqJvul4PWOFu2vAnO2z+v0JbWNFQNggD+vL B+1DAkLCGxXxrwEM9oUI7EL5WeMfZ2S454ghLxwifTqn4agt/XwXxk64jW+pWyA5hyIy Wordl591uF6KJsSI6yMTAFtmQoeTjVeqvLpEwGMdgBJAaVQQPbHskoxe4/TnQ0M//V5q 4k8k70De+H6QWCW6k0qhwqaXCaWF6zy692ji5chOSBRg5dB13WAy0zM/lbdknxwQcVtD vrDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=0eL75fbECUMHPdLWziDdHf0M2rBQ+ZJxO4ZG//pF8Yc=; b=nhTKxk8bKovskTCNsyOhR487sOqF+BOKOGUO0v02sq/W6VKwqH9NoPGugP8OdKDdjh RudJgvLhML0OEzvy22O0XMpxo4zqoWDgU1d+oAgQRaRqeQeF0i578L/r4amj7rMetYI8 DPaUjDxBiSXOTbj6SOhL8l4cfakGjS66qIksBokQcrbyi2KOns8JPELu7BHo7l4S3RH8 eztwGu3l6j+yJXbE7xnAzduFTToeTelRi6EwAz+xOGtqHp04Di61C3FY3+NITWRYN3zb 6ZpiMailFA0XneCbiWO0eG5O0phxM+35ozFwBkxTICMasE87zNbk0WhPcJNP6/Bfuhja R38w== X-Gm-Message-State: ACrzQf0TMawGbiR8hxSMkqYHVU7nkJlkjaQnq0RhSJNJ0QUMrAeDzVzQ HiefAKeDyAawbpUQMuSsmq6lSSzoppg= X-Google-Smtp-Source: AMsMyM6HnLETw9lCQ/qo1J1O4STnteNauqUvtMrnLT2rWGuvt3qBkyxSTIzLnf1TluN1k4yHP1AC2g== X-Received: by 2002:ac8:5c49:0:b0:35c:bf9b:b81b with SMTP id j9-20020ac85c49000000b0035cbf9bb81bmr4352574qtj.584.1665152539458; Fri, 07 Oct 2022 07:22:19 -0700 (PDT) Received: from ?IPV6:2620:10d:c0a3:1407:942e:c420:cf80:2f69? ([2620:10d:c091:500::6:7323]) by smtp.googlemail.com with ESMTPSA id u21-20020ac87515000000b00391d15f13f9sm2155295qtq.11.2022.10.07.07.22.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 07 Oct 2022 07:22:19 -0700 (PDT) Sender: Nathan Sidwell Content-Type: multipart/mixed; boundary="------------jtxwsU167nYtrqhbG0nXGo0O" Message-ID: <7e3c33fb-aa04-57a9-c93f-24d8747e6b8c@acm.org> Date: Fri, 7 Oct 2022 10:22:18 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Content-Language: en-US To: GCC Patches From: Nathan Sidwell Subject: libiberty: Demangle variadic template lambdas X-Spam-Status: No, score=-3036.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_SOMETLD_ARE_BAD_TLD,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------jtxwsU167nYtrqhbG0nXGo0O Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Now we have templated lambdas, we can have variadic template lambdas, and this leads to lambda signatures containing parameter packs. But just like 'auto' inside such a signature, we don't have a containing template, and thus fail. The fix is to check is_lambda_arg, just as for a template parameter. This allows us to demangle g++'s manglings of such lambdas. It's not a totally accurate demangling, because we don't mangle the template head (that's a separate issue), but it is better than failing to demangle. Due to the way we print subexprs, we add an unnecessary parens around the argument of the pack. That's an orthogonal problem, for which the solution is to have better knowledge of operator precedence. nathan -- Nathan Sidwell --------------jtxwsU167nYtrqhbG0nXGo0O Content-Type: text/x-patch; charset=UTF-8; name="0001-libiberty-Demangle-variadic-template-lambdas.patch" Content-Disposition: attachment; filename="0001-libiberty-Demangle-variadic-template-lambdas.patch" Content-Transfer-Encoding: base64 RnJvbSA1NWJkODA4NTI3ZThjMTk0N2NmMmQyYjQyNzY5NTI4MDg3YjY4N2VmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gU2lkd2VsbCA8bmF0aGFuQGFjbS5vcmc+ CkRhdGU6IEZyaSwgMzAgU2VwIDIwMjIgMTI6MTE6NDIgLTA3MDAKU3ViamVjdDogW1BBVENI XSBsaWJpYmVydHk6IERlbWFuZ2xlIHZhcmlhZGljIHRlbXBsYXRlIGxhbWJkYXMKCk5vdyB3 ZSBoYXZlIHRlbXBsYXRlZCBsYW1iZGFzLCB3ZSBjYW4gaGF2ZSB2YXJpYWRpYyB0ZW1wbGF0 ZSBsYW1iZGFzLAphbmQgdGhpcyBsZWFkcyB0byBsYW1iZGEgc2lnbmF0dXJlcyBjb250YWlu aW5nIHBhcmFtZXRlciBwYWNrcy4gIEJ1dApqdXN0IGxpa2UgJ2F1dG8nIGluc2lkZSBzdWNo IGEgc2lnbmF0dXJlLCB3ZSBkb24ndCBoYXZlIGEgY29udGFpbmluZwp0ZW1wbGF0ZSwgYW5k IHRodXMgZmFpbC4gIFRoZSBmaXggaXMgdG8gY2hlY2sgaXNfbGFtYmRhX2FyZywganVzdCBh cwpmb3IgYSB0ZW1wbGF0ZSBwYXJhbWV0ZXIuICBUaGlzIGFsbG93cyB1cyB0byBkZW1hbmds ZSBnKysncyBtYW5nbGluZ3MKb2Ygc3VjaCBsYW1iZGFzLgoKSXQncyBub3QgYSB0b3RhbGx5 IGFjY3VyYXRlIGRlbWFuZ2xpbmcsIGJlY2F1c2Ugd2UgZG9uJ3QgbWFuZ2xlIHRoZQp0ZW1w bGF0ZSBoZWFkICh0aGF0J3MgYSBzZXBhcmF0ZSBpc3N1ZSksIGJ1dCBpdCBpcyBiZXR0ZXIg dGhhbiBmYWlsaW5nCnRvIGRlbWFuZ2xlLgoKRHVlIHRvIHRoZSB3YXkgd2UgcHJpbnQgc3Vi ZXhwcnMsIHdlIGFkZCBhbiB1bm5lY2Vzc2FyeSBwYXJlbnMgYXJvdW5kCnRoZSBhcmd1bWVu dCBvZiB0aGUgcGFjay4gIFRoYXQncyBhbiBvcnRob2dvbmFsIHByb2JsZW0sIGZvciB3aGlj aCB0aGUKc29sdXRpb24gaXMgdG8gaGF2ZSBiZXR0ZXIga25vd2xlZGdlIG9mIG9wZXJhdG9y IHByZWNlZGVuY2UuCgoJbGliaWJlcnR5LwoJKiBjcC1kZW1hbmdsZS5jIChkX3ByaW50X2Nv bXBfaW5uZXIpOiBBbGxvdyBwYXJhbWV0ZXIgcGFja3MKCWluIGEgbGFtYmRhIHNpZ25hdHVy ZS4KCSogdGVzdHN1aXRlL2RlbWFuZ2xlLWV4cGVjdGVkOiBBZGQgdGVzdHMuCi0tLQogbGli aWJlcnR5L2NwLWRlbWFuZ2xlLmMgICAgICAgICAgICAgICB8IDMwICsrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLQogbGliaWJlcnR5L3Rlc3RzdWl0ZS9kZW1hbmdsZS1leHBlY3RlZCB8 ICA3ICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMTMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliaWJlcnR5L2NwLWRlbWFuZ2xlLmMgYi9saWJp YmVydHkvY3AtZGVtYW5nbGUuYwppbmRleCA3ZmYyMjVlYzFhYS4uMzAzYmZiZjcwOWUgMTAw NjQ0Ci0tLSBhL2xpYmliZXJ0eS9jcC1kZW1hbmdsZS5jCisrKyBiL2xpYmliZXJ0eS9jcC1k ZW1hbmdsZS5jCkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RydWN0IGRfcHJpbnRfaW5mbwogICAg ICBiZSBiaWdnZXIgdGhhbiBNQVhfUkVDVVJTSU9OX0NPVU5ULiAgKi8KICAgaW50IHJlY3Vy c2lvbjsKICAgLyogTm9uLXplcm8gaWYgd2UncmUgcHJpbnRpbmcgYSBsYW1iZGEgYXJndW1l bnQuICBBIHRlbXBsYXRlCi0gICAgIHBhcmFtZXRlciByZWZlcmVuY2UgYWN0dWFsbHkgbWVh bnMgJ2F1dG8nLiAgKi8KKyAgICAgcGFyYW1ldGVyIHJlZmVyZW5jZSBhY3R1YWxseSBtZWFu cyAnYXV0bycsIGEgcGFjayBleHBhbnNpb24gbWVhbnMgVC4uLiAgKi8KICAgaW50IGlzX2xh bWJkYV9hcmc7CiAgIC8qIFRoZSBjdXJyZW50IGluZGV4IGludG8gYW55IHRlbXBsYXRlIGFy Z3VtZW50IHBhY2tzIHdlIGFyZSB1c2luZwogICAgICBmb3IgcHJpbnRpbmcsIG9yIC0xIHRv IHByaW50IHRoZSB3aG9sZSBwYWNrLiAgKi8KQEAgLTU5MzAsOSArNTkzMCwxMCBAQCBkX3By aW50X2NvbXBfaW5uZXIgKHN0cnVjdCBkX3ByaW50X2luZm8gKmRwaSwgaW50IG9wdGlvbnMs CiAKICAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9QQUNLX0VYUEFOU0lPTjoKICAgICAg IHsKLQlpbnQgbGVuOwotCWludCBpOwotCXN0cnVjdCBkZW1hbmdsZV9jb21wb25lbnQgKmEg PSBkX2ZpbmRfcGFjayAoZHBpLCBkX2xlZnQgKGRjKSk7CisJc3RydWN0IGRlbWFuZ2xlX2Nv bXBvbmVudCAqYSA9IE5VTEw7CisKKwlpZiAoIWRwaS0+aXNfbGFtYmRhX2FyZykKKwkgIGEg PSBkX2ZpbmRfcGFjayAoZHBpLCBkX2xlZnQgKGRjKSk7CiAJaWYgKGEgPT0gTlVMTCkKIAkg IHsKIAkgICAgLyogZF9maW5kX3BhY2sgd29uJ3QgZmluZCBhbnl0aGluZyBpZiB0aGUgb25s eSBwYWNrcyBpbnZvbHZlZApAQCAtNTk0MCwxNyArNTk0MSwyMCBAQCBkX3ByaW50X2NvbXBf aW5uZXIgKHN0cnVjdCBkX3ByaW50X2luZm8gKmRwaSwgaW50IG9wdGlvbnMsCiAJICAgICAg IGNhc2UsIGp1c3QgcHJpbnQgdGhlIHBhdHRlcm4gYW5kICIuLi4iLiAgKi8KIAkgICAgZF9w cmludF9zdWJleHByIChkcGksIG9wdGlvbnMsIGRfbGVmdCAoZGMpKTsKIAkgICAgZF9hcHBl bmRfc3RyaW5nIChkcGksICIuLi4iKTsKLQkgICAgcmV0dXJuOwogCSAgfQotCi0JbGVuID0g ZF9wYWNrX2xlbmd0aCAoYSk7Ci0JZGMgPSBkX2xlZnQgKGRjKTsKLQlmb3IgKGkgPSAwOyBp IDwgbGVuOyArK2kpCisJZWxzZQogCSAgewotCSAgICBkcGktPnBhY2tfaW5kZXggPSBpOwot CSAgICBkX3ByaW50X2NvbXAgKGRwaSwgb3B0aW9ucywgZGMpOwotCSAgICBpZiAoaSA8IGxl bi0xKQotCSAgICAgIGRfYXBwZW5kX3N0cmluZyAoZHBpLCAiLCAiKTsKKwkgICAgaW50IGxl biA9IGRfcGFja19sZW5ndGggKGEpOworCSAgICBpbnQgaTsKKworCSAgICBkYyA9IGRfbGVm dCAoZGMpOworCSAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpCisJICAgICAgeworCQlp ZiAoaSkKKwkJICBkX2FwcGVuZF9zdHJpbmcgKGRwaSwgIiwgIik7CisJCWRwaS0+cGFja19p bmRleCA9IGk7CisJCWRfcHJpbnRfY29tcCAoZHBpLCBvcHRpb25zLCBkYyk7CisJICAgICAg fQogCSAgfQogICAgICAgfQogICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvbGliaWJlcnR5 L3Rlc3RzdWl0ZS9kZW1hbmdsZS1leHBlY3RlZCBiL2xpYmliZXJ0eS90ZXN0c3VpdGUvZGVt YW5nbGUtZXhwZWN0ZWQKaW5kZXggOGZhZDY4OTNhZTcuLjkwZGQ0YTEzOTQ1IDEwMDY0NAot LS0gYS9saWJpYmVydHkvdGVzdHN1aXRlL2RlbWFuZ2xlLWV4cGVjdGVkCisrKyBiL2xpYmli ZXJ0eS90ZXN0c3VpdGUvZGVtYW5nbGUtZXhwZWN0ZWQKQEAgLTE1NzQsMyArMTU3NCwxMCBA QCBpbml0aWFsaXplciBmb3IgbW9kdWxlIEZvby5CYXIKIAogX1pHSVczRm9vV1AzQmFyVzNC YXoKIGluaXRpYWxpemVyIGZvciBtb2R1bGUgRm9vOkJhci5CYXoKKworX1paMkwxdkVOS1Vs RHBUX0VfY2xJSmlQaUVFRXZTMF8KK3ZvaWQgTDEoKTo6e2xhbWJkYSgoYXV0bzoxKS4uLikj MX06Om9wZXJhdG9yKCk8aW50LCBpbnQqPihpbnQsIGludCopIGNvbnN0CisKK19aWjJMMXZF TktVbERwVF9FX2NsSUppUGlFRUVEYVMwXworYXV0byBMMSgpOjp7bGFtYmRhKChhdXRvOjEp Li4uKSMxfTo6b3BlcmF0b3IoKTxpbnQsIGludCo+KGludCwgaW50KikgY29uc3QKKwotLSAK Mi4zMC4yCgo= --------------jtxwsU167nYtrqhbG0nXGo0O--