From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vs1-xe31.google.com (mail-vs1-xe31.google.com [IPv6:2607:f8b0:4864:20::e31]) by sourceware.org (Postfix) with ESMTPS id C0F44385840A for ; Fri, 5 Jan 2024 00:16:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C0F44385840A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=cs.washington.edu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cs.washington.edu ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C0F44385840A Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::e31 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704413776; cv=none; b=xi8trJx5mhLwhny+zmZU7yUj1FtFEtrNL62GIJAPSXw4cmjEYUImvFViqxyI+PqOopWMByc11NDIGOXhJVRnpDG5JEL4G3O2VjvzWDZT/b2RNxW1tbHHCqvQhpOUDEWWWf7UGotbqpKWakE03efrkfs/diHMDwIyey4drEXMaXY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704413776; c=relaxed/simple; bh=x03Z4r5C+MgmdhSRU0s2wVjMh/GGo87CqBhDWAAbyX8=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=Wc99DjOIQu6OGUl0/4yU+9Ya4IuxRdcQEdJK5TBPfmYLCHyHa7Uju0fl1YT4Dtv0pgh7sLN8xGIAq69P40uMI+/Ob1b/dckNGNwIg9nFMRaq8RkZPPo0OKAXRYm97hvW9c1Aa8B+I7YaCSFhBbb5TF5leSbVdFOrpkQcFrYYplo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-vs1-xe31.google.com with SMTP id ada2fe7eead31-4672008b2c7so64858137.0 for ; Thu, 04 Jan 2024 16:16:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.washington.edu; s=goo201206; t=1704413767; x=1705018567; darn=gcc.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=mApBJPRxhT0GdpfgVktYHJioUqQ7iy+YewmVtadcIZ0=; b=YLRf49g+kJKUoaLd8ERwJ6WQNxZlyeLP4Z/qfOcSPpZUKrTCcPl0xG0U88p9W8PUkV YX0dVPajL0FkmCvDoMapkpIWTv5qZXqPHQeuij/9qz2/5X3cWScQ+rgR4NGlErpHrdkY 4Fe9NJ2B80JKxpDgGTF9KiOJcV941eHmqmmGo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704413767; x=1705018567; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mApBJPRxhT0GdpfgVktYHJioUqQ7iy+YewmVtadcIZ0=; b=TzP56ZHULxn3bN9Iv86t/JiOvBtFJwjHusNtV/ZZihb3za1m7i9IwR0MYxtNhf1b76 FawzrHI4+Wvckie1d8TRKati0WXXcvSY5WNMynS6vBNyeXEVlyd7b4DauCxmV+PrO52D uiXWs6pIXmK3PnIrn4rm276d79D9a5v3ATSRCpTVU/idxMPZyBnEM2nmVoeQrdkmiPkj gB1J5tUbUY+KQfPimpwaGkW4kQ5lAiLwdjNLgTZlPUwTXnRIlVfa89p0tBHZZPfRBM02 BsZ5jGVNSUCEN2nQY3VOb+sHEBLLeTNhoqrO9P0kAi1sxj7aJX4deRTxdOM8Y5AK4mbM eqbg== X-Gm-Message-State: AOJu0Yx6uYUAgN1quZzBh8jtHEnpElDqutdF9aJ2rFguEBt5ANq3qs/Z RmKeQP8lNVfiZuoS4XRaVDL4j3gSB8NSrptWvb0EITuHRBdw X-Google-Smtp-Source: AGHT+IESTCfn/dghhvTTl7zar8v0zPpYgDpS/Wg1IaY2Lq4ItvfDUzPMIR0QNT62CqKSzrzm96x3cJa0d5jtuMxfzDo= X-Received: by 2002:a05:6102:442c:b0:467:b632:8b24 with SMTP id df44-20020a056102442c00b00467b6328b24mr4862vsb.32.1704413767060; Thu, 04 Jan 2024 16:16:07 -0800 (PST) MIME-Version: 1.0 References: <20230911152703.22436-1-kmatsui@gcc.gnu.org> <20231223230558.849031-1-kmatsui@gcc.gnu.org> In-Reply-To: From: Ken Matsui Date: Thu, 4 Jan 2024 16:15:31 -0800 Message-ID: Subject: Re: [PATCH v2] libstdc++: Use _GLIBCXX_USE_BUILTIN_TRAIT To: Jonathan Wakely Cc: Ken Matsui , gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org, Patrick Palka Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Thu, Jan 4, 2024 at 2:11=E2=80=AFPM Jonathan Wakely = wrote: > > On Sat, 23 Dec 2023 at 23:06, Ken Matsui wrote: > > > > This patch uses _GLIBCXX_USE_BUILTIN_TRAIT macro instead of __has_built= in > > in the type_traits header for traits that have a corresponding fallback > > non-built-in implementation. This macro supports to toggle the use of > > built-in traits in the type_traits header through > > _GLIBCXX_DO_NOT_USE_BUILTIN_TRAITS macro, without needing to modify the > > source code. > > OK for trunk, thanks. > > +Reviewed-by: Jonathan Wakely > Thank you for your reviews! > > > > > > libstdc++-v3/ChangeLog: > > > > * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT. > > > > Signed-off-by: Ken Matsui > > Reviewed-by: Patrick Palka > > --- > > libstdc++-v3/include/std/type_traits | 10 +++++----- > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/includ= e/std/type_traits > > index f00c07f94f9..ba35ffb27fa 100644 > > --- a/libstdc++-v3/include/std/type_traits > > +++ b/libstdc++-v3/include/std/type_traits > > @@ -1481,7 +1481,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > : public __bool_constant<__is_base_of(_Base, _Derived)> > > { }; > > > > -#if __has_builtin(__is_convertible) > > +#if _GLIBCXX_USE_BUILTIN_TRAIT(__is_convertible) > > template > > struct is_convertible > > : public __bool_constant<__is_convertible(_From, _To)> > > @@ -1531,7 +1531,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > > > #ifdef __cpp_lib_is_nothrow_convertible // C++ >=3D 20 > > > > -#if __has_builtin(__is_nothrow_convertible) > > +#if _GLIBCXX_USE_BUILTIN_TRAIT(__is_nothrow_convertible) > > /// is_nothrow_convertible_v > > template > > inline constexpr bool is_nothrow_convertible_v > > @@ -1606,7 +1606,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > { using type =3D _Tp; }; > > > > /// remove_cv > > -#if __has_builtin(__remove_cv) > > +#if _GLIBCXX_USE_BUILTIN_TRAIT(__remove_cv) > > template > > struct remove_cv > > { using type =3D __remove_cv(_Tp); }; > > @@ -1672,7 +1672,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > // Reference transformations. > > > > /// remove_reference > > -#if __has_builtin(__remove_reference) > > +#if _GLIBCXX_USE_BUILTIN_TRAIT(__remove_reference) > > template > > struct remove_reference > > { using type =3D __remove_reference(_Tp); }; > > @@ -3537,7 +3537,7 @@ template > > * @{ > > */ > > #ifdef __cpp_lib_remove_cvref // C++ >=3D 20 > > -# if __has_builtin(__remove_cvref) > > +# if _GLIBCXX_USE_BUILTIN_TRAIT(__remove_cvref) > > template > > struct remove_cvref > > { using type =3D __remove_cvref(_Tp); }; > > -- > > 2.43.0 > > >