mingw format warnings
We have had format warnings in mingw builds for years, and it doesn't
look like we're ever going to do anything about them. Can we just add
-Wno-format to the CFLAGS for Mingw and be done with them?
cheers
andrew
On fre, 2011-01-28 at 14:12 -0500, Andrew Dunstan wrote:
We have had format warnings in mingw builds for years, and it doesn't
look like we're ever going to do anything about them. Can we just add
-Wno-format to the CFLAGS for Mingw and be done with them?
I wasn't aware of this issue, but looking at the latest build log from
narwhal, I see only 4 format-related warnings, and they all look pretty
easy and desirable to fix.
The boatload of other warnings there is more puzzling ...
Andrew Dunstan <andrew@dunslane.net> writes:
We have had format warnings in mingw builds for years, and it doesn't
look like we're ever going to do anything about them. Can we just add
-Wno-format to the CFLAGS for Mingw and be done with them?
Are any of them substantive, or are they all about %m ?
regards, tom lane
On 01/28/2011 03:11 PM, Tom Lane wrote:
Andrew Dunstan<andrew@dunslane.net> writes:
We have had format warnings in mingw builds for years, and it doesn't
look like we're ever going to do anything about them. Can we just add
-Wno-format to the CFLAGS for Mingw and be done with them?Are any of them substantive, or are they all about %m ?
[andrew@aurelia ]$ grep 'warning.*format' frogmouth-make*.log | sed
's/.*warning:/warning:/' | sort | uniq -c
1 warning: format '%08x' expects type 'unsigned int', but
argument 3 has type 'DWORD'
1 warning: format '%0i' expects type 'int', but argument 4 has
type 'DWORD'
1 warning: format '%0i' expects type 'int', but argument 5 has
type 'DWORD'
1 warning: format '%-30s' expects type 'char *', but argument 6
has type 'int'
2 warning: format '%d' expects type 'int', but argument 3 has
type 'DWORD'
2 warning: format '%i' expects type 'int', but argument 3 has
type 'uint64'
2 warning: format '%i' expects type 'int', but argument 4 has
type 'uint64'
3 warning: format not a string literal and no format arguments
1 warning: format '%s' expects type 'char *', but argument 4 has
type 'int64'
70 warning: too many arguments for format
1 warning: unknown conversion type character 'G' in format
73 warning: unknown conversion type character 'l' in format
360 warning: unknown conversion type character 'm' in format
1 warning: unknown conversion type character 'V' in format
cheers
andrew
Andrew Dunstan <andrew@dunslane.net> writes:
On 01/28/2011 03:11 PM, Tom Lane wrote:
Are any of them substantive, or are they all about %m ?
[andrew@aurelia ]$ grep 'warning.*format' frogmouth-make*.log | sed
's/.*warning:/warning:/' | sort | uniq -c
I'd say a lot of those probably need attention. It might be all right
to assume DWORD == int, but even there I'd feel safer with a cast.
regards, tom lane
On 01/28/2011 02:39 PM, Peter Eisentraut wrote:
On fre, 2011-01-28 at 14:12 -0500, Andrew Dunstan wrote:
We have had format warnings in mingw builds for years, and it doesn't
look like we're ever going to do anything about them. Can we just add
-Wno-format to the CFLAGS for Mingw and be done with them?I wasn't aware of this issue, but looking at the latest build log from
narwhal, I see only 4 format-related warnings, and they all look pretty
easy and desirable to fix.The boatload of other warnings there is more puzzling ...
Hmm. Looks like gcc 4.5.0 that's in use on frogmouth is a whole lot noisier.
cheers
andrew
On 01/28/2011 05:34 PM, Tom Lane wrote:
Andrew Dunstan<andrew@dunslane.net> writes:
On 01/28/2011 03:11 PM, Tom Lane wrote:
Are any of them substantive, or are they all about %m ?
[andrew@aurelia ]$ grep 'warning.*format' frogmouth-make*.log | sed
's/.*warning:/warning:/' | sort | uniq -cI'd say a lot of those probably need attention. It might be all right
to assume DWORD == int, but even there I'd feel safer with a cast.
A quick look through suggest a cast could be reasonable in these case:
c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.3124/../pgsql/src/backend/port/win32/crashdump.c:
In function 'crashDumpHandler':
c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.3124/../pgsql/src/backend/port/win32/crashdump.c:137:3:
warning: format '%0i' expects type 'int', but argument 4 has type 'DWORD'
c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.3124/../pgsql/src/backend/port/win32/crashdump.c:137:3:
warning: format '%0i' expects type 'int', but argument 5 has type 'DWORD'
c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.3124/../pgsql/src/backend/port/win32/crashdump.c:147:6:
warning: format '%d' expects type 'int', but argument 3 has type 'DWORD'
c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.3124/../pgsql/src/backend/port/win32/crashdump.c:156:6:
warning: format '%08x' expects type 'unsigned int', but argument 3 has
type 'DWORD'
pg_latch.c:147:4: warning: format '%d' expects type 'int', but argument
3 has type 'DWORD'
The remainder seem due to use of INT64FORMAT or other formats like %m
which gcc doesn't grok.
cheers
andrew