From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp104.iad3a.emailsrvr.com (smtp104.iad3a.emailsrvr.com [173.203.187.104]) by sourceware.org (Postfix) with ESMTPS id E38F33857B98 for ; Sat, 30 Jul 2022 23:17:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E38F33857B98 X-Auth-ID: tom@honermann.net Received: by smtp14.relay.iad3a.emailsrvr.com (Authenticated sender: tom-AT-honermann.net) with ESMTPSA id 0B2B423AAB; Sat, 30 Jul 2022 19:17:08 -0400 (EDT) Message-ID: Date: Sat, 30 Jul 2022 19:17:07 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH 1/3] C: Implement C2X N2653 char8_t and UTF-8 string literal changes Content-Language: en-US To: Joseph Myers Cc: gcc-patches@gcc.gnu.org References: <20220725175948.1424695-1-tom@honermann.net> <20220725175948.1424695-2-tom@honermann.net> From: Tom Honermann In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Classification-ID: 11a03112-f051-4c4c-8d99-9c07a6f0a741-1-1 X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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-List-Received-Date: Sat, 30 Jul 2022 23:17:10 -0000 On 7/27/22 7:20 PM, Joseph Myers wrote: > On Mon, 25 Jul 2022, Tom Honermann via Gcc-patches wrote: > >> diff --git a/gcc/ginclude/stdatomic.h b/gcc/ginclude/stdatomic.h >> index bfcfdf664c7..75ed7965689 100644 >> --- a/gcc/ginclude/stdatomic.h >> +++ b/gcc/ginclude/stdatomic.h >> @@ -49,6 +49,10 @@ typedef _Atomic long atomic_long; >> typedef _Atomic unsigned long atomic_ulong; >> typedef _Atomic long long atomic_llong; >> typedef _Atomic unsigned long long atomic_ullong; >> +#if (defined(__CHAR8_TYPE__) \ >> + && (defined(_GNU_SOURCE) || defined(_ISOC2X_SOURCE))) >> +typedef _Atomic __CHAR8_TYPE__ atomic_char8_t; >> +#endif >> typedef _Atomic __CHAR16_TYPE__ atomic_char16_t; >> typedef _Atomic __CHAR32_TYPE__ atomic_char32_t; >> typedef _Atomic __WCHAR_TYPE__ atomic_wchar_t; > GCC headers don't test glibc feature test macros such as _GNU_SOURCE and > _ISOC2X_SOURCE; they base things only on the standard version (whether > directly, or indirectly as via __CHAR8_TYPE__) and standard-defined > feature test macros. Ok, thank you, that makes sense. I'll follow up with a revised patch that removes the additional conditions. Tom. > > (There's one exception in glimits.h - testing __USE_GNU, the macro defined > internally by glibc's headers - but I don't think that's something we want > to emulate in new code.) >