Re: unknown conversion %m

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: unknown conversion %m
Дата
Msg-id 4DB82DF6.7060104@dunslane.net
обсуждение исходный текст
Ответ на Re: unknown conversion %m  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: unknown conversion %m  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
Re: unknown conversion %m  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers

On 04/27/2011 10:29 AM, Tom Lane wrote:
> 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.
>
>             

What I'd like to know is why it doesn't complain elsewhere. The one 
non-Linux non-Windows machine I have is FBSD. Its gcc (4.2.1) doesn't 
expand  "%m" but doesn't complain about it either. It does complain 
about other unknown formats. I wonder if they have patched gcc to 
silence the warnings?

cheers

andrew


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: unknown conversion %m
Следующее
От: "Kevin Grittner"
Дата:
Сообщение: Re: unknown conversion %m