[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/5] posix: Sync regex code with gnulib
From: |
Paul Eggert |
Subject: |
Re: [PATCH 1/5] posix: Sync regex code with gnulib |
Date: |
Tue, 19 Jan 2021 18:55:51 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 |
On 1/19/21 7:43 AM, Bruno Haible wrote:
Adhemerval Zanella wrote:
-# if (__GNUC__ >= 7) || (__clang_major__ >= 10)
+# if (__GNUC__ >= 7) || (defined __clang_major__ &&__clang_major__ >= 10)
I would write it as:
+# if (__GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
This line should be used only if _LIBC is defined, so we can simplify it
to just "#if __GNUC__ >= 7" and thus not worry about Clang.
I see that Gnulib wasn't consistent about this, so I installed the
attached patch to Gnulib to fix the issue here and elsewhere. The idea
is that the Gnulib regex_internal.h can be copied back to glibc, and
that the other uses in Gnulib should be similar.
On 1/19/21 6:43 AM, Adhemerval Zanella wrote:
Paul, this seemed to a common pattern scatter on multiple file in gnulib.
Wouldn't be better to consolidate it on cdefs.h?
We could append something like the following to cdefs.h, and switch to
__attribute_fallthrough__ for modules shared between the two systems. Is
that something you'd like to pursue? (We should also sync Gnulib cdefs.h
back to glibc of course.)
#if defined __STDC_VERSION__ && 201710L < __STDC_VERSION__
# define __attribute_fallthrough__ [[__fallthrough__]]
#elif __GNUC_PREREQ (7, 0) || __glibc_has_attribute (__fallthrough__)
# define __attribute_fallthrough__ __attribute__ ((__fallthrough__))
#else
# define __attribute_fallthrough__ ((void) 0)
#endif
0001-fnmatch-regex-fts-FALLTHROUGH-consistency.patch
Description: Text Data
Re: [PATCH 1/5] posix: Sync regex code with gnulib, Florian Weimer, 2021/01/19