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  (Andrew Dunstan <andrew@dunslane.net>)
Список 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 по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: fixing INT64_FORMAT warnings on Mingw
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: unknown conversion %m