On 2021-02-23 13:09:18 -0500, Tom Lane wrote: > Andres Freund <and...@anarazel.de> writes: > > One of the recent commits have introduce a new warning with gcc 10, when > > building with optimizations: > > Oddly, I see no such warning with Fedora's current compiler, > gcc version 10.2.1 20201125 (Red Hat 10.2.1-9) (GCC) > > Are you using any special compiler switches?
A few. At first I didn't see any relevant ones - but I think it's just that you need to use -O3 instead of -O2. andres@awork3:~/build/postgres/dev-optimize/vpath$ (cd src/backend/regex/ && ccache gcc-10 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -I../../../src/include -I/home/andres/src/postgresql/src/include -D_GNU_SOURCE -I/usr/include/libxml2 -c -o regcomp.o /home/andres/src/postgresql/src/backend/regex/regcomp.c -O2) andres@awork3:~/build/postgres/dev-optimize/vpath$ (cd src/backend/regex/ && ccache gcc-10 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -I../../../src/include -I/home/andres/src/postgresql/src/include -D_GNU_SOURCE -I/usr/include/libxml2 -c -o regcomp.o /home/andres/src/postgresql/src/backend/regex/regcomp.c -O3) In file included from /home/andres/src/postgresql/src/backend/regex/regcomp.c:2304: /home/andres/src/postgresql/src/backend/regex/regc_nfa.c: In function ‘checkmatchall’: /home/andres/src/postgresql/src/backend/regex/regc_nfa.c:3086:20: warning: array subscript -1 is outside array bounds of ‘_Bool[257]’ [-Warray-bounds] 3086 | hasmatch[depth] = true; | ^ /home/andres/src/postgresql/src/backend/regex/regc_nfa.c:2920:8: note: while referencing ‘hasmatch’ 2920 | bool hasmatch[DUPINF + 1]; | ^~~~~~~~ andres@awork3:~/build/postgres/dev-optimize/vpath$ gcc-10 --version gcc-10 (Debian 10.2.1-6) 10.2.1 20210110 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Greetings, Andres Freund