Em ter., 30 de jul. de 2024 às 13:19, Tom Lane <t...@sss.pgh.pa.us> escreveu:
> 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. > > In the BinarySignature case, we could silence it in at least two ways. > We could remove the explicit trailing \0 and rely on the implicit one: > > -static const char BinarySignature[11] = "PGCOPY\n\377\r\n\0"; > +static const char BinarySignature[11] = "PGCOPY\n\377\r\n"; > > Or just drop the unnecessary array length specification: > +1 for dropping the length specification. The trailing \0 the compiler will automatically fill in. Note this came from copyfromparse.c, who also have the same problem. best regards, Ranier Vilela