From patchwork Mon Nov 7 18:27:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Sidwell X-Patchwork-Id: 16635 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp2217706wru; Mon, 7 Nov 2022 10:28:47 -0800 (PST) X-Google-Smtp-Source: AMsMyM4Ehn7ci+OnykeBfsrnyzpepAiCiTNQ4ruZ0ehscjLG732Uk4i49AlLgl25zQdy8NK41faw X-Received: by 2002:a05:6402:1e96:b0:462:89aa:d402 with SMTP id f22-20020a0564021e9600b0046289aad402mr51201380edf.190.1667845727070; Mon, 07 Nov 2022 10:28:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1667845727; cv=none; d=google.com; s=arc-20160816; b=Ean4O0zWhxZRmzgREaNlLq4bClbEfxP+hnN62l7z0w9m9ws44c38lI6gI2a2AlmJNx RLjkkZ+VnfzWdd/h3kC2z233cEgpFcHrLFU4YkoAh5etidVoj5lM7C/rldl4WC84AIlB GnDi6P1lUnICo7oicc6FVsO2wsOBFMuz37CJq8opOonQOr4Gxwgu6m1RRyJoz/keK632 /mj3babQu4OFTJHqbJwb87jXpXmi+AcPkKzeDDPXodva6et7TBiK+a7N4aywiqtSH8jP A46Gem/smyGasdU0SsrRv8+mknAeevko5MLniB2VOg+n5n8DtOykdocClcbL2DHY0Ei1 j75Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :content-language:user-agent:mime-version:date:message-id :dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=HeDP10QcWQaeaAELl+DHe7S6OTjWxiIl6lyfS9atdt4=; b=PNpguaIbBz6MHsgyubgKWnZXr2FCzOmqlAdojftRwfX8RGb6eI3jJBjIH2OVmxJ5Sv cRmIqjd35pqoIGS+8uqSHueF/gBWAfcnj6xRuuFJc4mnPW1Rt1+CVPHRpfXV4+vD6Q+z jOlNRlqqh/AG94kIVvEsPu1PDNoHtRQSgA23LB44FeECEJrA4hQnGgOtin+eQsPICf4i lo839I6iVzoewApOWjY/EO5KI2Na+qLTRvIJAUccfAN41JYqh09glEwQtgtfKQpbNcW4 bP/13xhm235UKuaqIDQwVtIknhrza/bgbDoNkABbYg+9/7dKAiaC+howPFXPOpWjLIZF xzkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=h4rAYNs5; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id r13-20020a05640251cd00b004631f24f2d1si12276654edd.610.2022.11.07.10.28.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Nov 2022 10:28:47 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=h4rAYNs5; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1060B3858C39 for ; Mon, 7 Nov 2022 18:28:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1060B3858C39 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667845726; bh=HeDP10QcWQaeaAELl+DHe7S6OTjWxiIl6lyfS9atdt4=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=h4rAYNs5zwXYQEHMSUZEmGSPrT9l0u9jfhJuJLV4hI8RV53sMXX8okPuMU8F8dU3x FBjXfAoCexmwFoS1nmybtOSlUNCzuZgME0wjbjRWc0wHEj/QgJ9FSYqqVBDC1YxT59 RnQNGWTDwxyZgKrioQyHEEwPYl7HbYEUbk11zQ9U= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-qv1-xf35.google.com (mail-qv1-xf35.google.com [IPv6:2607:f8b0:4864:20::f35]) by sourceware.org (Postfix) with ESMTPS id 175D53858C83 for ; Mon, 7 Nov 2022 18:27:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 175D53858C83 Received: by mail-qv1-xf35.google.com with SMTP id h10so8675137qvq.7 for ; Mon, 07 Nov 2022 10:27:59 -0800 (PST) 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=HeDP10QcWQaeaAELl+DHe7S6OTjWxiIl6lyfS9atdt4=; b=CIx49qqdMwLsKHQnPNZbJ+W1Q8NEm6HbPZB9VqK0GdtHDRcv8bd0bs9+3PA607o3/n ThRKkidxBiTrwlzW/sJdXzZkqGcmfnBOcnL8H03IXN3GUBLIeFALj7FU28dlsxkZRSTy 9c4LZTyl97NR9U5dvx6BokSmQjBBC4Y/CsZX82ZSMeZdpAwhbQ93FENTCAcfaEyxbAiX S1mjcwZqBAA3zfCwFcxpVj83LKV0mgJZ5/jGK6y0+yavPUENoE8MuzzivyAVxrjFJA8A 1eSrrkRUlfGdDAT4sDumuSf/5nGz7YWcyU+jCphDH+/vtmxMSGRADx+0GvLnXJUhRLNj LUCQ== X-Gm-Message-State: ACrzQf3R52iP209MFIsCyvrVPtVzD3q4gRDc4Yy1gD7ZnxvAI95AZIRT QSKJsdDk4h/1N1YCbOhok7X9MkoA7rSUBw== X-Received: by 2002:a05:6214:767:b0:4bb:59f0:5079 with SMTP id f7-20020a056214076700b004bb59f05079mr45611550qvz.30.1667845678256; Mon, 07 Nov 2022 10:27:58 -0800 (PST) Received: from ?IPV6:2601:19c:527f:bfd0::5? ([2601:19c:527f:bfd0::5]) by smtp.googlemail.com with ESMTPSA id w10-20020ac843ca000000b003a4f2510e5dsm6452448qtn.24.2022.11.07.10.27.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Nov 2022 10:27:57 -0800 (PST) Message-ID: <29a64538-62fa-63a6-39ed-ed9165679e43@acm.org> Date: Mon, 7 Nov 2022 13:27:56 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Content-Language: en-US To: GCC Patches Subject: C++: Template lambda mangling testcases X-Spam-Status: No, score=-3038.6 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, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Nathan Sidwell via Gcc-patches From: Nathan Sidwell Reply-To: Nathan Sidwell Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748863000785334742?= X-GMAIL-MSGID: =?utf-8?q?1748863000785334742?= I found some additional cases when working on the demangler. May as well check their mangling. Since I managed to confuse myself. nathan From 51d567d4d15e78b42d2ca83f229c98fff2aec9fa Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Mon, 7 Nov 2022 11:08:21 -0500 Subject: [PATCH] C++: Template lambda mangling testcases I found some additional cases when working on the demangler. May as well check their mangling. gcc/testsuite/ * g++.dg/abi/lambda-tpl1.h: Add more cases. * g++.dg/abi/lambda-tpl1-17.C: Add checks. * g++.dg/abi/lambda-tpl1-18.C: Likewise. * g++.dg/abi/lambda-tpl1-18vs17.C: Likewise. --- gcc/testsuite/g++.dg/abi/lambda-tpl1-17.C | 6 ++++++ gcc/testsuite/g++.dg/abi/lambda-tpl1-18.C | 6 ++++++ gcc/testsuite/g++.dg/abi/lambda-tpl1-18vs17.C | 5 +++++ gcc/testsuite/g++.dg/abi/lambda-tpl1.h | 11 +++++++++++ 4 files changed, 28 insertions(+) diff --git a/gcc/testsuite/g++.dg/abi/lambda-tpl1-17.C b/gcc/testsuite/g++.dg/abi/lambda-tpl1-17.C index b61aaf98cd0..010f6222151 100644 --- a/gcc/testsuite/g++.dg/abi/lambda-tpl1-17.C +++ b/gcc/testsuite/g++.dg/abi/lambda-tpl1-17.C @@ -18,3 +18,9 @@ // { dg-final { scan-assembler {_ZNK6l_var3MUlRT_IJXspT0_EEEE_clI1XJLi1ELi2ELi3EEEEDaS1_:} } } // { dg-final { scan-assembler {_ZNK6l_var4MUlR1YIJDpT_EEE_clIJ1US6_EEEDaS3_:} } } // { dg-final { scan-assembler {_ZZ2FnILi1EEvvENKUlT_E_clIiEEDaS0_:} } } + +// { dg-final { scan-assembler {_ZZ1fvENKUlT_E_clIcLc0EEEDaS_:} } } +// { dg-final { scan-assembler {_ZZ1fvENKUlT_E_clIiLi0EEEDaS_:} } } +// { dg-final { scan-assembler {_ZZZ1fvENKUlT_E_clIcLc0EEEDaS_ENKUlcS_E_clIcEEDacS_:} } } +// { dg-final { scan-assembler {_ZZZ1fvENKUlT_E_clIiLi0EEEDaS_ENKUliS_E_clIiEEDaiS_:} } } +// { dg-final { scan-assembler {_ZZ1fvENKUlP1UIT_Lj0EEPS_IiLj0EEE0_clIcEEDaS2_S4_:} } } diff --git a/gcc/testsuite/g++.dg/abi/lambda-tpl1-18.C b/gcc/testsuite/g++.dg/abi/lambda-tpl1-18.C index dbeea407651..66cce9aa266 100644 --- a/gcc/testsuite/g++.dg/abi/lambda-tpl1-18.C +++ b/gcc/testsuite/g++.dg/abi/lambda-tpl1-18.C @@ -23,3 +23,9 @@ // https://github.com/llvm/llvm-project/issues/58631 // { dg-final { scan-assembler {_ZZ2FnILi1EEvvENKUlTyT_E_clIiEEDaS0_:} } } + +// { dg-final { scan-assembler {_ZZ1fvENKUlTyTnT_S_E_clIcLc0EEEDaS_:} } } +// { dg-final { scan-assembler {_ZZ1fvENKUlTyTnT_S_E_clIiLi0EEEDaS_:} } } +// { dg-final { scan-assembler {_ZZZ1fvENKUlTyTnT_S_E_clIcLc0EEEDaS_ENKUlTycS_E_clIcEEDacS_:} } } +// { dg-final { scan-assembler {_ZZZ1fvENKUlTyTnT_S_E_clIiLi0EEEDaS_ENKUlTyiS_E_clIiEEDaiS_:} } } +// { dg-final { scan-assembler {_ZZ1fvENKUlTyP1UIT_Lj0EEPS_IiLj0EEE_clIcEEDaS2_S4_:} } } diff --git a/gcc/testsuite/g++.dg/abi/lambda-tpl1-18vs17.C b/gcc/testsuite/g++.dg/abi/lambda-tpl1-18vs17.C index 8bead7393c7..6489db9e442 100644 --- a/gcc/testsuite/g++.dg/abi/lambda-tpl1-18vs17.C +++ b/gcc/testsuite/g++.dg/abi/lambda-tpl1-18vs17.C @@ -14,3 +14,8 @@ // { dg-regexp {[^\n]*lambda-tpl1.h:[:0-9]* warning: the mangled name [^\n]* \('_ZNK10l_tpl_autoMUlT_T0_E_clIiiEEDaS_S0_'\) and '-fabi-version=18' \('_ZNK10l_tpl_autoMUlTyT_T0_E_clIiiEEDaS0_S1_'\) [^\n]*\n} } // { dg-regexp {[^\n]*lambda-tpl1.h:[:0-9]* warning: the mangled name [^\n]* \('_ZNK5l_tplMUlT_E_clIiEEDaS_'\) and '-fabi-version=18' \('_ZNK5l_tplMUlTyT_E_clIiEEDaS0_'\) [^\n]*\n} } // { dg-regexp {[^\n]*lambda-tpl1.h:[:0-9]* warning: the mangled name [^\n]* \('_ZNK6l_autoMUlT_E_clIiEEDaS_'\) and '-fabi-version=18' \('_ZNK6l_autoMUlT_E_clIiEEDaS0_'\) [^\n]*\n} } +// { dg-regexp {[^\n]*lambda-tpl1.h:[:0-9]* warning: the mangled name [^\n]* \('_ZZ1fvENKUlT_E_clIiLi0EEEDaS_'\) and '-fabi-version=18' \('_ZZ1fvENKUlTyTnT_S_E_clIiLi0EEEDaS_'\) [^\n]*\n} } +// { dg-regexp {[^\n]*lambda-tpl1.h:[:0-9]* warning: the mangled name [^\n]* \('_ZZZ1fvENKUlT_E_clIiLi0EEEDaS_ENKUliS_E_clIiEEDaiS_'\) and '-fabi-version=18' \('_ZZZ1fvENKUlTyTnT_S_E_clIiLi0EEEDaS_ENKUlTyiS_E_clIiEEDaiS_'\) [^\n]*\n} } +// { dg-regexp {[^\n]*lambda-tpl1.h:[:0-9]* warning: the mangled name [^\n]* \('_ZZ1fvENKUlT_E_clIcLc0EEEDaS_'\) and '-fabi-version=18' \('_ZZ1fvENKUlTyTnT_S_E_clIcLc0EEEDaS_'\) [^\n]*\n} } +// { dg-regexp {[^\n]*lambda-tpl1.h:[:0-9]* warning: the mangled name [^\n]* \('_ZZZ1fvENKUlT_E_clIcLc0EEEDaS_ENKUlcS_E_clIcEEDacS_'\) and '-fabi-version=18' \('_ZZZ1fvENKUlTyTnT_S_E_clIcLc0EEEDaS_ENKUlTycS_E_clIcEEDacS_'\) [^\n]*\n} } +// { dg-regexp {[^\n]*lambda-tpl1.h:[:0-9]* warning: the mangled name [^\n]* \('_ZZ1fvENKUlP1UIT_Lj0EEPS_IiLj0EEE0_clIcEEDaS2_S4_'\) and '-fabi-version=18' \('_ZZ1fvENKUlTyP1UIT_Lj0EEPS_IiLj0EEE_clIcEEDaS2_S4_'\) [^\n]*\n} } diff --git a/gcc/testsuite/g++.dg/abi/lambda-tpl1.h b/gcc/testsuite/g++.dg/abi/lambda-tpl1.h index 5d6fe5e1d0a..376c3f6a2f4 100644 --- a/gcc/testsuite/g++.dg/abi/lambda-tpl1.h +++ b/gcc/testsuite/g++.dg/abi/lambda-tpl1.h @@ -56,4 +56,15 @@ void f () l_var4 (y); Fn<1> (); + + auto l1 = [] (T a) { + auto l2 = [] (T a, U b) {}; + + l2 (a, v); + }; + auto l3 = [](U *, U *) {}; + + l1 (1); + l1 ('1'); + l3 ((U *)nullptr, nullptr); } -- 2.38.1