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 по дате отправления: