Re: msvc const warnings

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: msvc const warnings
Дата
Msg-id 9854.1185289414@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: msvc const warnings  (Gregory Stark <stark@enterprisedb.com>)
Ответы Re: msvc const warnings
Список pgsql-patches
Gregory Stark <stark@enterprisedb.com> writes:
> "Magnus Hagander" <magnus@hagander.net> writes:
>> Stefan mentioned that the warning may be one that shows up in a different
>> compiler somewhere as well, thouh, which might indicate that we should fix
>> the underlying issue? (Even if the code is correct, if it confuses multiple
>> compilers...)

> I think the right fix is just to remove the const qualifier. It's clearly not
> treating the pointer as const if it's passing it to pfree which is surely a
> state change if anything is.

That was what you claimed in the previous discussion, but you were wrong
then and you're still wrong.  The pointer is "const char **" which means
it is a pointer to some pointers that are not themselves constant.  That
is, the palloc'd area *contains* pointers to const strings, but that
doesn't make the palloc'd area itself const.  You're making the same
mistake msvc does.

I agree though that the #pragma solution is awfully ugly.  What I'd
be inclined to do is

    /* cast away indirect const to avoid warnings from broken compilers */
    free((void *) headers);
    ...


            regards, tom lane

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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: plperl warnings on win32
Следующее
От: Gregory Stark
Дата:
Сообщение: Re: msvc const warnings