From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9241 invoked by alias); 9 Jan 2020 21:21:01 -0000 Mailing-List: contact libstdc++-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libstdc++-owner@gcc.gnu.org Received: (qmail 9176 invoked by uid 89); 9 Jan 2020 21:21:00 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-17.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=unavailable version=3.3.1 spammy= X-HELO: us-smtp-1.mimecast.com Received: from us-smtp-delivery-1.mimecast.com (HELO us-smtp-1.mimecast.com) (205.139.110.120) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 09 Jan 2020 21:20:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578604857; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=aFVCdOT7oCMVKQXb4/S2ANqpwVGFDBrqbpyLsvttj7U=; b=gR3FQwMmHci+R3Lx+gGPZA4DSjtdeMeP0rfEE2TqZezp/cdAIo3giMt6cJcyoRqNZ8Gkqu 661XK2PeskzcxH6b6SJGm07NqN43hPI21e3j2sy/uY2g/8sawAIPo5TM5bONWiJgKlP9Rl u6Nqrq1aornbpE4PmUSLuy2905zh+Qk= 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-10-lZldmuXRM5aakkAeuF8rLA-1; Thu, 09 Jan 2020 16:20:53 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8B7FF800D5F; Thu, 9 Jan 2020 21:20:52 +0000 (UTC) Received: from localhost (unknown [10.33.36.12]) by smtp.corp.redhat.com (Postfix) with ESMTP id E080E272A3; Thu, 9 Jan 2020 21:20:51 +0000 (UTC) Date: Thu, 09 Jan 2020 21:31:00 -0000 From: Jonathan Wakely To: JeanHeyd Meneide Cc: libstdc++ , gcc-patches@gcc.gnu.org Subject: Re: [ PATCH ] [ C++ ] Implementing P0767 - deprecate POD Message-ID: <20200109212050.GB490107@redhat.com> References: <20191204214722.GK11522@redhat.com> <20200109195745.GY490107@redhat.com> MIME-Version: 1.0 In-Reply-To: <20200109195745.GY490107@redhat.com> X-Clacks-Overhead: GNU Terry Pratchett X-Mimecast-Spam-Score: 0 Content-Type: multipart/mixed; boundary="AsxXAMtlQ5JHofzM" Content-Disposition: inline X-IsSubscribed: yes X-SW-Source: 2020-01/txt/msg00060.txt.bz2 --AsxXAMtlQ5JHofzM Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 143 On 09/01/20 19:57 +0000, Jonathan Wakely wrote: >I'll commit the attached patch after more testing. And this follow-up to fix some fallout. --AsxXAMtlQ5JHofzM Content-Type: text/x-patch; charset=us-ascii Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: quoted-printable Content-length: 5356 commit 212e166cbeb4c7df38436563c3c51dbd4e0efc0d Author: Jonathan Wakely Date: Thu Jan 9 19:55:17 2020 +0000 libstdc++: Fix testsuite failures and warnings due to is_pod deprecation =20=20=20=20 With -std=3Dgnu++2a and -Wsystem-headers the std::is_pod deprecation causes some new diagnostics. This suppresses them. =20=20=20=20 * include/experimental/type_traits (experimental::is_pod_v): Di= sable -Wdeprecated-declarations warnings around reference to std::is_= pod. * include/std/type_traits (is_pod_v): Likewise. * testsuite/18_support/max_align_t/requirements/2.cc: Also check is_standard_layout and is_trivial. Do not check is_pod for C++2= 0. * testsuite/20_util/is_pod/requirements/explicit_instantiation.= cc: Add -Wno-deprecated for C++20. * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_pod/value.cc: Likewise. * testsuite/experimental/type_traits/value.cc: Likewise. diff --git a/libstdc++-v3/include/experimental/type_traits b/libstdc++-v3/i= nclude/experimental/type_traits index a84ddd45ff1..a92c385c029 100644 --- a/libstdc++-v3/include/experimental/type_traits +++ b/libstdc++-v3/include/experimental/type_traits @@ -110,8 +110,11 @@ template constexpr bool is_trivially_copyable_v =3D is_trivially_copyable<_Tp>::v= alue; template constexpr bool is_standard_layout_v =3D is_standard_layout<_Tp>::value; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" template constexpr bool is_pod_v =3D is_pod<_Tp>::value; +#pragma GCC diagnostic pop template constexpr bool is_literal_type_v =3D is_literal_type<_Tp>::value; template diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/st= d/type_traits index c69867c2ae0..6aa2cedfa0a 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -3079,9 +3079,12 @@ template is_trivially_copyable<_Tp>::value; template inline constexpr bool is_standard_layout_v =3D is_standard_layout<_Tp>::= value; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" template _GLIBCXX20_DEPRECATED("use is_standard_layout_v && is_trivial_v instead") inline constexpr bool is_pod_v =3D is_pod<_Tp>::value; +#pragma GCC diagnostic pop template inline constexpr bool is_literal_type_v =3D is_literal_type<_Tp>::value; template diff --git a/libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.c= c b/libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.cc index 97036ed3134..7e496967156 100644 --- a/libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.cc +++ b/libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.cc @@ -20,4 +20,8 @@ #include #include =20 +#if __cplusplus <=3D 201703L static_assert (std::is_pod::value, ""); +#endif +static_assert (std::is_standard_layout::value, ""); +static_assert (std::is_trivial::value, ""); diff --git a/libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_in= stantiation.cc b/libstdc++-v3/testsuite/20_util/is_pod/requirements/explici= t_instantiation.cc index 7ee41b33d7c..b41a59338bb 100644 --- a/libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantia= tion.cc +++ b/libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantia= tion.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-additional-options "-Wno-deprecated" { target { c++2a } } } // 2010-02-21 Paolo Carlini =20 // Copyright (C) 2010-2020 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc= b/libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc index 492f0ea956f..888895719b7 100644 --- a/libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-additional-options "-Wno-deprecated" { target { c++2a } } } =20 // 2010-02-21 Paolo Carlini // diff --git a/libstdc++-v3/testsuite/20_util/is_pod/value.cc b/libstdc++-v3/= testsuite/20_util/is_pod/value.cc index 5a856309ad5..659d9d4d8ae 100644 --- a/libstdc++-v3/testsuite/20_util/is_pod/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_pod/value.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-additional-options "-Wno-deprecated" { target { c++2a } } } =20 // 2010-02-21 Paolo Carlini // diff --git a/libstdc++-v3/testsuite/experimental/type_traits/value.cc b/lib= stdc++-v3/testsuite/experimental/type_traits/value.cc index 156753b4b5e..0e1176dd14a 100644 --- a/libstdc++-v3/testsuite/experimental/type_traits/value.cc +++ b/libstdc++-v3/testsuite/experimental/type_traits/value.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++14 } } +// { dg-additional-options "-Wno-deprecated" { target { c++2a } } } =20 // Copyright (C) 2014-2020 Free Software Foundation, Inc. // --AsxXAMtlQ5JHofzM--