From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6796 invoked by alias); 1 Aug 2017 15:06:11 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 6760 invoked by uid 89); 1 Aug 2017 15:06:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.1 required=5.0 tests=BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy=guessed, H*M:info X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-pg0-f68.google.com Received: from mail-pg0-f68.google.com (HELO mail-pg0-f68.google.com) (74.125.83.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 01 Aug 2017 15:06:08 +0000 Received: by mail-pg0-f68.google.com with SMTP id 123so1308187pga.5; Tue, 01 Aug 2017 08:06:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=OAEeJWrl6VHzGC0/q5zY4ZQna3Ze+Gv9PdcGSv8KRHc=; b=k45rjjzI5+7rXdGTVwY/W5vVRjBJao38bfZrGnOgwfkAwhKERgCuD9r1rMRJMsl4C7 vZ3OcoZodwnRy5/EnC8B9+MYDkDumlzC1I09jisR3mD/3D5hmwa7y1mTSWe2AK4/cC9C DbsyYsv42JSyXYfkKHp+p0GkRM2B/BK0eGD22w1/I9ZiBKPJJXoaHaKUB2XlqPsCNY9S P0jjL3kbDEZXEKnfIjSdnVI9RLpauKvqABXV0SkBULjG+FFCXgAqpNUYrhm4xQ9lc3Uq Vmj90t4EsC8S7ZUgMYRVllKib5cNBeNTNoR1seRbnFQ7A5G6HS/bumIUGogP0rV9Fneh h8ng== X-Gm-Message-State: AIVw113Nf3zmZoPFIkkhdJkZgffjhzqwKfU/IbSC4h5SqknEkaFzmeEc V2AMIkXyDJACRw== X-Received: by 10.99.163.111 with SMTP id v47mr19051847pgn.74.1501599966581; Tue, 01 Aug 2017 08:06:06 -0700 (PDT) Received: from netzach ([240b:10:9080:2700:ea2a:eaff:fe09:7306]) by smtp.gmail.com with ESMTPSA id s11sm37045977pfi.24.2017.08.01.08.06.04 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 01 Aug 2017 08:06:04 -0700 (PDT) Received: from ktns by netzach with local (Exim 4.89) (envelope-from ) id 1dcYk5-0003QH-ID; Wed, 02 Aug 2017 00:05:54 +0900 Date: Tue, 01 Aug 2017 15:06:00 -0000 From: Katsuhiko Nishimra To: Jonathan Wakely Cc: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org, cfe-dev@lists.llvm.org Subject: Re: [PATCH] libstdc++: Support std::is_aggregate on clang++ (was [cfe-dev] clang++: std::is_aggregate unusable with clang-5.0/libstdc++-7) Message-ID: <20170801150551.lvxoru7kq46mueqt@netzach.ktns.kdns.info> References: <20170727072715.43fqiep4nawwvzlc@netzach.ktns.kdns.info> <20170731145342.GW15340@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="vadrduntsdk6tdrg" Content-Disposition: inline In-Reply-To: <20170731145342.GW15340@redhat.com> User-Agent: NeoMutt/20170609 (1.8.3) X-SW-Source: 2017-08/txt/msg00095.txt.bz2 --vadrduntsdk6tdrg Content-Type: multipart/mixed; boundary="qosqcsnrejw7uhcx" Content-Disposition: inline --qosqcsnrejw7uhcx Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-length: 339 On Mon, Jul 31, 2017 at 03:53:42PM +0100, Jonathan Wakely wrote: > This __has_bultin check only exists for Clang, so should be replaced > by the correct __is_identifier check, not left there in addition to > it. I see. Actually I've guessed so, and thank you for clarifying it. I'm attaching a replacing patch. Please take a look at it. --qosqcsnrejw7uhcx Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="0001-libstdc-Support-std-is_aggregate-on-clang.patch" Content-Transfer-Encoding: quoted-printable Content-length: 1237 =46rom 1b22cc531027832cf1eb50b73354f1730edbba54 Mon Sep 17 00:00:00 2001 From: Katsuhiko Nishimra Date: Tue, 1 Aug 2017 20:36:58 +0900 Subject: [PATCH] libstdc++: Support std::is_aggregate on clang++ Currently, libstdc++ tries to detect __is_aggregate built-in macro using __has_builtin, but this fails on clang++ because __has_builtin on clang++ detects only built-in functions, not built-in macros. This patch adds a test using __is_identifier. Tested with clang++ 6.0.0-svn309616-1~exp1 and g++ 7.1.0-11 on Debian unstable. --- libstdc++-v3/include/std/type_traits | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/st= d/type_traits index 390b6f40a..ee9c75baf 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -2894,9 +2894,9 @@ template =20 #if __GNUC__ >=3D 7 # define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1 -#elif defined __has_builtin +#elif defined(__is_identifier) // For non-GNU compilers: -# if __has_builtin(__is_aggregate) +# if ! __is_identifier(__is_aggregate) # define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1 # endif #endif --=20 2.13.3 --qosqcsnrejw7uhcx-- --vadrduntsdk6tdrg Content-Type: application/pgp-signature; name="signature.asc" Content-length: 833 -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEKwF6jXDBDkFA20i/ncMl05OjGnAFAlmAmMsACgkQncMl05Oj GnCclA//X4kz4GWF71oSTUbqmKSOgoZetpaqHcxXLrSzm8rBNgG7M40dEgYQTXWw Ujf4AY2uSJp1SAO5XCpmZ0nBJ1N5ooLs/3R5O/dX4fTMPYoKJFo+zCYpBB01RIHU kjpzXDWS0NqDObyAMthoV3RlbIBY1vMM14z78U/8FSbmC3Omu7Pfs+Hvcew/9bLR MXyTJqkk2VnU5faGe3Gp4MCrqGN/Y/amEBDwwunbE+qAk80dI4KtFS2tQkwOYndm fc7+NFsaFeulQixReJz35IiVsVeJvelHA+2Sn+nzlkqzkPyDm82IDb5NOwYZit/X V6xwss4kTwKmv9kh+38iuHYAUhW8B++lRa+HRn7lkt544GS8OtPAFcksR/k0Q7MB TjRxzpP+FGCYRYmCH5Wm42Ro/rkAX/mQTpJ9CvR/jLXpFD8Xj9AX1L0wm++BJiA1 U71DczEGSmkrDImjTJOaxPI4ugTgIN00jAC91IZHqYdo4luZA8/BaB6AD0+tbZdm 6FMiyUQczMD0B7AUlTmINwtsFN7hivmj52VbNuIF9IAiYnGDAWhgt+JfzL6ZGsTR e0JaW16zHogP4IXXzrIjt/5xAst8sC0ABkpuNGJjRIfdauAVzIlj681DCjTg/m4b k2LWmKBQ+qkZqxBukSS505PxHmglkDdA+WCDoBLxiUzT4j+JkiI= =4Te8 -----END PGP SIGNATURE----- --vadrduntsdk6tdrg--