From patchwork Fri Apr 30 13:48:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Wakely X-Patchwork-Id: 1472315 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=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=M1NIcGJC; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FWtxH3XRhz9sWY for ; Fri, 30 Apr 2021 23:48:18 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5D0F2384F01B; Fri, 30 Apr 2021 13:48:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5D0F2384F01B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1619790494; bh=yPd3h0kbFOhPKf1T0FZ1HTCl3ZjNbg2Jmz2GR0v+KbI=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=M1NIcGJCrj2gwhsJgDEh2VHiXcQoJISaMa2GjMVdN7vRHeppA+04Aq2NetUtbIf8a JDbihD+qot4v7R6HOorz6T9nmsTSzvJbq1qECvsNLAW+Nj0ox22M5jhhcG1NidtY1I Ykpp37f/ca3QfFssKfOMs8YZDanGI5n8pUFmjrDs= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 0207D384F00D for ; Fri, 30 Apr 2021 13:48:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0207D384F00D 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-244-tWYxAti6NiGqrC_6m9yreg-1; Fri, 30 Apr 2021 09:48:08 -0400 X-MC-Unique: tWYxAti6NiGqrC_6m9yreg-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 38D121006708; Fri, 30 Apr 2021 13:48:07 +0000 (UTC) Received: from localhost (unknown [10.33.36.164]) by smtp.corp.redhat.com (Postfix) with ESMTP id A3F5D19CBF; Fri, 30 Apr 2021 13:48:06 +0000 (UTC) Date: Fri, 30 Apr 2021 14:48:05 +0100 To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [committed] libstdc++: Define effective-target for net::ip features [PR 100351] Message-ID: MIME-Version: 1.0 X-Clacks-Overhead: GNU Terry Pratchett X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline X-Spam-Status: No, score=-14.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, 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-Patchwork-Original-From: Jonathan Wakely via Gcc-patches From: Jonathan Wakely Reply-To: Jonathan Wakely Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" Define a new effective-target keyword so that tests for the Networking TS header can be skipped on targets where none of it can be usefully defined. libstdc++-v3/ChangeLog: PR libstdc++/100180 PR libstdc++/100286 PR libstdc++/100351 * testsuite/experimental/net/internet/address/v4/comparisons.cc: Use new effective-target keyword. * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise. * testsuite/experimental/net/internet/address/v4/creation.cc: Likewise. * testsuite/experimental/net/internet/address/v4/members.cc: Likewise. * testsuite/experimental/net/internet/address/v6/members.cc: Likewise. * testsuite/experimental/net/internet/resolver/base.cc: Likewise. * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise. * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise. * testsuite/experimental/net/internet/socket/opt.cc: Likewise. * testsuite/experimental/net/internet/tcp.cc: Likewise. * testsuite/experimental/net/internet/udp.cc: Likewise. * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip): New proc to check net_ts_ip et. Tested powerpc64le-linux. Committed to trunk. commit 57028ff2d3f56deec25498f83e99c39478acc02f Author: Jonathan Wakely Date: Fri Apr 30 11:45:07 2021 libstdc++: Define effective-target for net::ip features [PR 100351] Define a new effective-target keyword so that tests for the Networking TS header can be skipped on targets where none of it can be usefully defined. libstdc++-v3/ChangeLog: PR libstdc++/100180 PR libstdc++/100286 PR libstdc++/100351 * testsuite/experimental/net/internet/address/v4/comparisons.cc: Use new effective-target keyword. * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise. * testsuite/experimental/net/internet/address/v4/creation.cc: Likewise. * testsuite/experimental/net/internet/address/v4/members.cc: Likewise. * testsuite/experimental/net/internet/address/v6/members.cc: Likewise. * testsuite/experimental/net/internet/resolver/base.cc: Likewise. * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise. * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise. * testsuite/experimental/net/internet/socket/opt.cc: Likewise. * testsuite/experimental/net/internet/tcp.cc: Likewise. * testsuite/experimental/net/internet/udp.cc: Likewise. * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip): New proc to check net_ts_ip et. diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc index 82cc966b00d..88c56a8eaee 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc @@ -16,6 +16,7 @@ // . // { dg-do run { target c++14 } } +// { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } #include @@ -26,8 +27,6 @@ using std::experimental::net::ip::address_v4; void test01() { - bool test __attribute__((unused)) = false; - address_v4 addrs[] = { address_v4::any(), address_v4::loopback(), address_v4::broadcast(), address_v4{0x11001100}, address_v4{0xEFEFEFEF} diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc index 28bf3bd989c..848839f7c61 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc @@ -16,6 +16,7 @@ // . // { dg-do run { target c++14 } } +// { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } #include diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc index 81c087faaf2..bf233065c7d 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc @@ -16,6 +16,7 @@ // . // { dg-do run { target c++14 } } +// { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } #include @@ -27,8 +28,6 @@ using net::ip::address_v4; void test01() { - bool test __attribute__((unused)) = false; - auto a0 = make_address_v4( address_v4::bytes_type{} ); VERIFY( a0.to_uint() == 0 ); VERIFY( a0.to_bytes() == address_v4::bytes_type{} ); @@ -42,8 +41,6 @@ test01() void test02() { - bool test __attribute__((unused)) = false; - auto a0 = net::ip::make_address_v4(0u); VERIFY( a0.to_uint() == 0 ); VERIFY( a0.to_bytes() == address_v4::bytes_type{} ); @@ -57,8 +54,6 @@ test02() void test03() { - bool test __attribute__((unused)) = false; - auto a1 = net::ip::make_address_v4("127.0.0.1"); VERIFY( a1.is_loopback() ); auto a2 = net::ip::make_address_v4(std::string{"127.0.0.2"}); diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc index f644c0847ab..ac66f864ca5 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc @@ -16,6 +16,7 @@ // . // { dg-do run { target c++14 } } +// { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } #include diff --git a/libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc b/libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc index b77d6a29e3d..3d9d653f457 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc @@ -16,6 +16,7 @@ // . // { dg-do run { target c++14 } } +// { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } #include diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc index 23af4464b72..4c36b03ebcc 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc @@ -16,6 +16,7 @@ // . // { dg-do compile { target c++14 } } +// { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } #include diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc index 321f96fb37f..ca8f0899ccd 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc @@ -16,6 +16,7 @@ // . // { dg-do run { target c++14 } } +// { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } #include @@ -26,8 +27,6 @@ using namespace std::experimental::net; void test01() { - bool test __attribute__((unused)) = false; - std::error_code ec; io_context ctx; ip::tcp::resolver resolv(ctx); @@ -44,8 +43,6 @@ test01() void test02() { - bool test __attribute__((unused)) = false; - std::error_code ec; io_context ctx; ip::tcp::resolver resolv(ctx); @@ -83,8 +80,6 @@ test02() void test03() { - bool test __attribute__((unused)) = false; - std::error_code ec; io_context ctx; ip::tcp::resolver resolv(ctx); diff --git a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc index fce04d4fe2f..b50b2ee36a4 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc @@ -16,6 +16,7 @@ // . // { dg-do run { target c++14 } } +// { dg-require-effective-target net_ts_ip } // { dg-add-options net_ts } #include @@ -26,8 +27,6 @@ using namespace std::experimental::net; void test01() { - bool test __attribute__((unused)) = false; - std::error_code ec; io_context ctx; ip::tcp::resolver resolv(ctx); diff --git a/libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc b/libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc index cfbc00f9da8..a4efeb4e233 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++14 } } +// { dg-require-effective-target net_ts_ip } #include #include diff --git a/libstdc++-v3/testsuite/experimental/net/internet/tcp.cc b/libstdc++-v3/testsuite/experimental/net/internet/tcp.cc index 87d042377a0..d583f22f508 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/tcp.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/tcp.cc @@ -1,9 +1,9 @@ // { dg-do compile { target c++14 } } +// { dg-require-effective-target net_ts_ip } #include #include -#if __has_include() using namespace std; using std::experimental::net::ip::tcp; using std::experimental::net::ip::basic_endpoint; @@ -42,4 +42,3 @@ test01() static_assert( tcp::v4().protocol() == IPPROTO_TCP, "" ); static_assert( tcp::v6().protocol() == IPPROTO_TCP, "" ); } -#endif diff --git a/libstdc++-v3/testsuite/experimental/net/internet/udp.cc b/libstdc++-v3/testsuite/experimental/net/internet/udp.cc index d5f42c7575e..300f735d834 100644 --- a/libstdc++-v3/testsuite/experimental/net/internet/udp.cc +++ b/libstdc++-v3/testsuite/experimental/net/internet/udp.cc @@ -1,9 +1,9 @@ // { dg-do compile { target c++14 } } +// { dg-require-effective-target net_ts_ip } #include #include -#if __has_include() using namespace std; using std::experimental::net::ip::udp; using std::experimental::net::ip::basic_endpoint; @@ -40,4 +40,3 @@ test01() static_assert( udp::v4().protocol() == IPPROTO_UDP, "" ); static_assert( udp::v6().protocol() == IPPROTO_UDP, "" ); } -#endif diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index 7f9580db8ed..73b202ce212 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -1331,6 +1331,14 @@ proc check_effective_target_ieee-floats { } { }] } +# Return 1 if Networking TS net::ip features are available. +proc check_effective_target_net_ts_ip { } { + return [check_v3_target_prop_cached et_net_ts_ip { + set cond "__has_include()" + return [v3_check_preprocessor_condition net_ts_ip $cond] + }] +} + set additional_prunes "" if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \