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.
