On 2020-04-24 17:56:46+0100, Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxxx> wrote: > > > On 24/04/2020 16:12, Đoàn Trần Công Danh wrote: > > Somewhere later in the code, we indirectly include alloca.h > > which will define alloca again, thus create a warning about > > redefinition of a preprocessor. > > > > Include it prior to define alloca in order to not define it again. > > So, on cygwin, this patch is not required. ie. I don't see any sparse > errors/warnings for compat/regex/regex.c. > > Since cygwin uses a different c library (new-lib rather than glibc), > I did a quick test on Linux, thus: > > $ sparse --version > v0.6.1-191-gc51a0382 > $ > $ git checkout master > Switched to branch 'master' > Your branch is up-to-date with 'origin/master'. > $ > $ make clean > GIT_VERSION = 2.26.2.266.ge870325ee8 > ... > $ > $ make NO_REGEX=1 sparse >sp-out1 2>&1 > $ > $ diff sp-out sp-out1 > 0a1,2 > > GIT_VERSION = 2.26.2.266.ge870325ee8 > > * new build flags > 12a15 > > * new prefix flags > 72a76 > > GEN command-list.h > 226a231 > > SP compat/regex/regex.c > $ > $ make V=1 NO_REGEX=1 compat/regex/regex.sp > cgcc -no-compile -Werror -Wall -Wdeclaration-after-statement -Wformat-security -Wold-style-definition -Woverflow -Wpointer-arith -Wstrict-prototypes -Wunused -Wvla -DENABLE_SHA256 -Wextra -Wmissing-prototypes -Wno-empty-body -Wno-missing-field-initializers -Wno-sign-compare -Wno-unused-parameter -g -O2 -Wall -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"x86_64\"" -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -Icompat/regex -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DGAWK -DNO_MBSUPPORT \ > compat/regex/regex.c > $ > > So, again I don't see a problem. I guess it is possible that the > version of sparse I am using (see above) has _also_ fixed this > problem, in addition to the prototype attribute placement fix. > > Another option is that the version of glibc also matters. (I am > on Linux Mint, which is based on Ubuntu 18.04 LTS) It would not > be the first time that I have seen errors in system header files > change from one release to the next ... I'm using a Linux distro with musl libc. I guess it's the main culprit? I have another box with glibc, but it's mostly in Windows 10, because my sister is its main user. I'll take a look if it make that warning when my sister agree to leave that box to me. -- Danh