Re: unknown conversion %m
От | Tom Lane |
---|---|
Тема | Re: unknown conversion %m |
Дата | |
Msg-id | 15357.1303914595@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: unknown conversion %m (Andrew Dunstan <andrew@dunslane.net>) |
Ответы |
Re: unknown conversion %m
|
Список | pgsql-hackers |
Andrew Dunstan <andrew@dunslane.net> writes: > On 04/27/2011 12:50 AM, Tom Lane wrote: >> Andrew Dunstan<andrew@dunslane.net> writes: >>> All or almost all the warnings seen on Windows/Mingw of the type >>> "warning: unknown conversion type character 'm' in format" come from >>> checking of three functions: errmsg, elog and errdetail. I therefore >>> propose to disable the attribute checking of those three functions, on >>> Windows only (since that's the only place I've seen the warnings). >> That seems to me to be throwing the baby out with the bathwater. >> If Windows could be assumed to be just like every other platform, >> we could maybe figure that being format-warning-free elsewhere >> was sufficient checking; but that assumption is obviously wrong. > We're not doing anything about the warnings, and I'm not sure there's > anything we can do other than suppress them or live with them. > The compiler is in fact quite correct, it doesn't know anything about > "%m", and if we were ever to use %m in a context where we actually > expected it to output the contents of strerror(errno) the warning would > be lost among a huge pile of these other warnings where its use is > harmless because we expand it ourselves. That strikes me as a more > potent danger. I don't buy that. The risk that gcc will let past a '%m' without complaint, in a function that doesn't actually support it, exists on most non-Linux platforms (ie pretty much anywhere you use gcc with non-GNU libc), and has existed from the beginning. Despite this, I cannot recall that we have ever had a bug of that ilk. But we have most certainly had bugs with incorrect/unportable matching of other format arguments. I think losing the ability to detect the latter in Windows-specific code is a terrible price to pay for silencing an easily-ignorable class of warnings. regards, tom lane
В списке pgsql-hackers по дате отправления: