From patchwork Wed Jan 22 19:31:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Jelinek X-Patchwork-Id: 1227402 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-518056-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha1 header.s=default header.b=SS3hM43d; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Mxvotu6g; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 482wWp5nYhz9sR0 for ; Thu, 23 Jan 2020 06:31:48 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:reply-to:mime-version:content-type; q=dns; s=default; b=XoL889vlP3YDmezrJj4oLb7mZboZ8Y6xs+a9tO+Yrlx qIdQDAZAyraSsc33GOQ834umMzO2IkkSxRxVuO9lvMxRcY7yI6cmeEvkp8oPu14O cwEEr2zfcoK3W5dru/FFHSF9ZbSZTzHjepxZMT/t1N7bKlVHv98/frdOysgyAoto = DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:reply-to:mime-version:content-type; s=default; bh=M23/xiiX3ykOJy+1aFY4Vi08DeY=; b=SS3hM43d+PxrY3D0c hMFtRpQVRObse4yKO79ZfiH4j2siTLjIGglOiEmveflp5A6q502ofmrsDUgaTVOA N2PzY4rNXRbgSzKl3u8hwuI/gTX1Yn3KuneW+7watTxOS9smDxz5SvPvqGli0cvr JKjAZM6COw7JbJddllsMKAuPPM= Received: (qmail 20548 invoked by alias); 22 Jan 2020 19:31:36 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 20465 invoked by uid 89); 22 Jan 2020 19:31:35 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy= X-HELO: us-smtp-delivery-1.mimecast.com Received: from us-smtp-1.mimecast.com (HELO us-smtp-delivery-1.mimecast.com) (205.139.110.61) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 22 Jan 2020 19:31:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1579721485; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type; bh=7IsM7rvxY3UosWWMvC793slGuSZw4aSMbwwB6qEaCHw=; b=Mxvotu6gpCX8VPD72GO8fAN8R37tUm9NckwxGNFyPHiDATaq2iD6Q/ncrwJOrOLeL6ZLSE Pn2Y8opz1luk1YJNVkGq3v/gwbbca2/qOUu5uZk8Rig5NbEFTbQDVR3WqMXEgci2l/9Wsi /7plErGImF1gsQF5D76+PJgbJBXnWeM= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-286-Ccnmn3epNjmqxrQvkAijOw-1; Wed, 22 Jan 2020 14:31:13 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B02088017CC for ; Wed, 22 Jan 2020 19:31:12 +0000 (UTC) Received: from tucnak.zalov.cz (ovpn-116-51.ams2.redhat.com [10.36.116.51]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CE4155C28D for ; Wed, 22 Jan 2020 19:31:11 +0000 (UTC) Received: from tucnak.zalov.cz (localhost [127.0.0.1]) by tucnak.zalov.cz (8.15.2/8.15.2) with ESMTP id 00MJV9mm029009 for ; Wed, 22 Jan 2020 20:31:10 +0100 Received: (from jakub@localhost) by tucnak.zalov.cz (8.15.2/8.15.2/Submit) id 00MJV8oO029008 for gcc-patches@gcc.gnu.org; Wed, 22 Jan 2020 20:31:08 +0100 Date: Wed, 22 Jan 2020 20:31:08 +0100 From: Jakub Jelinek To: gcc-patches@gcc.gnu.org Subject: [committed] Backports to 9.x branch Message-ID: <20200122193108.GP10088@tucnak> Reply-To: Jakub Jelinek MIME-Version: 1.0 User-Agent: Mutt/1.11.3 (2019-02-01) X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline X-IsSubscribed: yes Hi! I've backported these 15 commits from trunk to 9.x branch, bootstrapped/regtested them on x86_64-linux and i686-linux and committed. Jakub PR c++/92992 * call.c (convert_arg_to_ellipsis): For decltype(nullptr) arguments that have side-effects use cp_build_compound_expr. * g++.dg/cpp0x/nullptr45.C: New test. --- gcc/cp/ChangeLog | 9 +++++++++ gcc/cp/call.c | 7 ++++++- gcc/testsuite/ChangeLog | 8 ++++++++ gcc/testsuite/g++.dg/cpp0x/nullptr45.C | 24 ++++++++++++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/cpp0x/nullptr45.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0e1557c936e..f0e314fd354 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,12 @@ +2020-01-22 Jakub Jelinek + + Backported from mainline + 2019-12-20 Jakub Jelinek + + PR c++/92992 + * call.c (convert_arg_to_ellipsis): For decltype(nullptr) arguments + that have side-effects use cp_build_compound_expr. + 2020-01-21 Jason Merrill PR c++/91476 - anon-namespace reference temp clash between TUs. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 8e14e89d5d4..787a7ed387b 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -7543,7 +7543,12 @@ convert_arg_to_ellipsis (tree arg, tsubst_flags_t complain) arg = convert_to_real_nofold (double_type_node, arg); } else if (NULLPTR_TYPE_P (arg_type)) - arg = null_pointer_node; + { + if (TREE_SIDE_EFFECTS (arg)) + arg = cp_build_compound_expr (arg, null_pointer_node, complain); + else + arg = null_pointer_node; + } else if (INTEGRAL_OR_ENUMERATION_TYPE_P (arg_type)) { if (SCOPED_ENUM_P (arg_type)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d76c0598245..2e507fdfe50 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2020-01-22 Jakub Jelinek + + Backported from mainline + 2019-12-20 Jakub Jelinek + + PR c++/92992 + * g++.dg/cpp0x/nullptr45.C: New test. + 2020-01-22 Joseph Myers Backport from mainline: diff --git a/gcc/testsuite/g++.dg/cpp0x/nullptr45.C b/gcc/testsuite/g++.dg/cpp0x/nullptr45.C new file mode 100644 index 00000000000..3ff226803df --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/nullptr45.C @@ -0,0 +1,24 @@ +// PR c++/92992 +// { dg-do run { target c++11 } } + +int a; + +void +bar (int, ...) +{ +} + +decltype (nullptr) +baz () +{ + a++; + return nullptr; +} + +int +main () +{ + bar (0, baz ()); + if (a != 1) + __builtin_abort (); +}