On 30.07.24 18:19, Tom Lane wrote:
Sometime in the last month or so, flaviventris's bleeding-edge
version of gcc has started whining[1] about truncation of a
string literal's implicit trailing '\0' in contexts like this:

../pgsql/src/backend/commands/copyto.c:106:41: warning:
initializer-string for array of 'char' is too long
[-Wunterminated-string-initialization]
   106 | static const char BinarySignature[11] = "PGCOPY\n\377\r\n\0";
       |                                         ^~~~~~~~~~~~~~~~~~~~

../pgsql/src/backend/utils/adt/numutils.c:29:1: warning:
initializer-string for array of 'char' is too long
[-Wunterminated-string-initialization]
    29 | "00" "01" "02" "03" "04" "05" "06" "07" "08" "09"
       | ^~~~

Presumably this'll appear in less-bleeding-edge releases in a
few months' time.

According to the gcc documentation, this warning is part of -Wextra. And indeed flaviventris runs with -Wextra:

'CFLAGS' => '-O1 -ggdb -g3 -fno-omit-frame-pointer -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers -O0',

So I think the appropriate fix here for now is to add -Wno-unterminated-string-initialization to this buildfarm configuration.

Maybe we find this warning useful, in which case we should add -Wunterminated-string-initialization to the standard set of warning options before undertaking code changes. But gcc-15 is still about a year away from being released, so it seems too early for that.



Reply via email to