From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by sourceware.org (Postfix) with ESMTP id CFDD2385DC00 for ; Sat, 4 Apr 2020 20:22:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CFDD2385DC00 Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-422-iNWuZlgEPbqfvlbXFfJi4A-1; Sat, 04 Apr 2020 16:22:39 -0400 X-MC-Unique: iNWuZlgEPbqfvlbXFfJi4A-1 Received: by mail-qv1-f69.google.com with SMTP id j7so9193022qvy.22 for ; Sat, 04 Apr 2020 13:22:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=8OVa1+N1wn9frPjeW1wO3lrAME9Pn2bGay7BBBZG+OE=; b=q5lzXoWQNmUf6xEoNxMV0yjcNetpwfEZ/ZMbz6jluZMx53f/visJT1A0JF+U4G1IaR tEqKy/CKI38mM2anO/aX5ZO1EDdn052SV83Iown8c94ms+xxk1ht3l/W7D6W8d7m4tBi z59Vv4H7SNj0rUWP1r4LSqS6I94jd84hXvoyvd/DYKgSRx4fYVgn5A22HX+OZJk3Zt/H 0KCCojl9YXwbk9k/1mUVVzsUQNedD14sINE+L/U49TnCC4lEgUzyDwLkfwpMEIemImef qCMyu49icW0E896ixLmv9+DKiWZgQ09eqwuPoSYhPa79m4xNOVjZcDMbWV19z5w98Urg HHpg== X-Gm-Message-State: AGi0PuYqUMxt3DrPe8P0pYBSmdMGVrQ3aNjnsYnXtAstsH6Sa5LU2ES1 wuGkd/ncplyGZtEybxV2VADFUgzT8zyHp1085Hf/2PYDCJ/0FvV3JkLZqrLDfO6j1Z/1fIjx9mz MsG6eAgLeQdUnKJ1EZw== X-Received: by 2002:ac8:5350:: with SMTP id d16mr2016505qto.298.1586031758443; Sat, 04 Apr 2020 13:22:38 -0700 (PDT) X-Google-Smtp-Source: APiQypIYaGTdkVxsc846Q+kN+NS6Fu/YjMXu/88gFKyFF078WYh7xXNVp5U2dEsv+bwv+wb7Nkpq0Q== X-Received: by 2002:ac8:5350:: with SMTP id d16mr2016494qto.298.1586031758065; Sat, 04 Apr 2020 13:22:38 -0700 (PDT) Received: from barrymore.redhat.com (209-6-216-142.s141.c3-0.smr-cbr1.sbo-smr.ma.cable.rcncustomer.com. [209.6.216.142]) by smtp.gmail.com with ESMTPSA id r4sm3212733qtu.62.2020.04.04.13.22.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Apr 2020 13:22:37 -0700 (PDT) From: Jason Merrill To: gcc-patches@gcc.gnu.org Subject: [pushed] c++: Mangling of dependent conversions [PR91377] Date: Sat, 4 Apr 2020 16:22:36 -0400 Message-Id: <20200404202236.11987-1-jason@redhat.com> X-Mailer: git-send-email 2.18.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-29.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-List-Received-Date: Sat, 04 Apr 2020 20:22:44 -0000 We skip over other conversion codes when mangling expressions, we should do the same with IMPLICIT_CONV_EXPR. Tested x86_64-pc-linux-gnu, applying to trunk/9/8. gcc/cp/ChangeLog 2020-04-04 Jason Merrill =09PR c++/91377 =09* mangle.c (write_expression): Skip IMPLICIT_CONV_EXPR. --- gcc/cp/mangle.c | 1 + gcc/testsuite/g++.dg/abi/mangle75.C | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 gcc/testsuite/g++.dg/abi/mangle75.C diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 1fc78bfa753..9e39cfd8dba 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -2875,6 +2875,7 @@ write_expression (tree expr) /* Skip NOP_EXPR and CONVERT_EXPR. They can occur when (say) a pointer argument is converted (via qualification conversions) to another type= . */ while (CONVERT_EXPR_CODE_P (code) +=09 || code =3D=3D IMPLICIT_CONV_EXPR =09 || location_wrapper_p (expr) =09 /* Parentheses aren't mangled. */ =09 || code =3D=3D PAREN_EXPR diff --git a/gcc/testsuite/g++.dg/abi/mangle75.C b/gcc/testsuite/g++.dg/abi= /mangle75.C new file mode 100644 index 00000000000..f2661997a33 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/mangle75.C @@ -0,0 +1,13 @@ +// PR c++/91377 +// { dg-do compile { target c++11 } } + +struct f { + static constexpr int d =3D 3; + typedef int e; +}; +template struct x { }; +template using n =3D x; +template auto v() -> n; +void af() { v(); } + +// { dg-final { scan-assembler "_Z1vI1fE1xIXplLi0EsrT_1dEEv" } } base-commit: 21e28527130a89491f848dfb5019afa01b252479 --=20 2.18.1