Build failure with VS 2012 due to uninitialized pointers
От | Craig Ringer |
---|---|
Тема | Build failure with VS 2012 due to uninitialized pointers |
Дата | |
Msg-id | 53995C6E.90509@2ndquadrant.com обсуждение исходный текст |
Ответы |
Re: Build failure with VS 2012 due to uninitialized pointers
|
Список | pgsql-odbc |
Hi folks VS 2012 reports possibly uninitialized pointer access: c:\users\administrator\desktop\psqlodbc\connection.c(2073): error C4703: potentially uninitialized local pointer variable 'sock' used which is if (0 != (sockerr = SOCK_get_errcode(sock))) { in original_CC_connect(...). c:\users\administrator\desktop\psqlodbc\dlg_wingui.c(177): error C4703: potentially uninitialized local pointer variable 'comval' used which is CheckDlgButton(hdlg, DRV_COMMLOG, comval->commlog); By default it treats these as fatal errors, so the codebase won't build on VS 2012. BuildAll.ps1 doesn't seem to provide a simple way to pass extra CFLAGS into the build (to pass /sdl- per http://msdn.microsoft.com/en-us/library/jj161081.aspx), and it isn't really desirable to just turn the warning off anyway. I've taken a look at what's going on. In the case of the first one the function is not small and its flow isn't simple. I thought I'd mention the issue here first, in case somebody was able to immediately see what's missing. While I could just: - SocketClass *sock; + SocketClass *sock = NULL; I'm pretty sure that's just papering over whatever the real problem is. The second, the comval error, looks to be a missing default: clause in the case. If this were backend code I'd just toss in an elog(FATAL,"Unreachable code reached"); but that's not going to be much good in psqlODBC. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-odbc по дате отправления: