Re: Compiler warnings in psqloodbc 08.03.0200
От | Zoltan Boszormenyi |
---|---|
Тема | Re: Compiler warnings in psqloodbc 08.03.0200 |
Дата | |
Msg-id | 48E30A7B.2070105@cybertec.at обсуждение исходный текст |
Ответ на | Re: Compiler warnings in psqloodbc 08.03.0200 (Hiroshi Inoue <inoue@tpf.co.jp>) |
Ответы |
Re: Compiler warnings in psqloodbc 08.03.0200
|
Список | pgsql-odbc |
Hiroshi Inoue írta: > Zoltan Boszormenyi wrote: >> Hi, >> >> here's the fix for all non-pointer-signedness warnings, >> against 08.03.0300 that was released meanwhile. Now >> the compilation only emits 246 "differ in signedness" >> warnings, which is still too much noise. I agree with >> Tom Lane that those should be cleaned up if for nothing >> else, than the real bugs don't get lost in the noise. > > Thanks. > >> In pgapi30.c, two instances of >> "cast from pointer to integer of different size" > > They may come from the strange handling of unixODBC's > 64bit ODBC. Honestly I don't understand how to use > 64-bit unixODBC correctly. Probably you can remove the > warnings by #defining BUILD_REAL_64_BIT_MODE somewhere. I'll try it but the CAST_PTR() seems to be working in both 32 and 64-bit. BUILD_REAL_64_BIT_MODE should be defined by the autoconf machinery if needed. >> In psqlodbc.c()::finalize_global_cs() is only used inside >> "#ifdef WIN32" but was defined outside causing a >> "defined but not used" warning. > > It is also used in _fini() when __GNUC__ isn't defined. > Though I'm not familiar with *nix systems, it seems > strange to me that there's no function with > __attribute__((destructor)) while init() function > with __attribute__((constrcutor)) is used under > __GNUC__ mode. So, because of boolean logic: A v (!A ^ !B) = A v !B something like below would work: #if defined(WIN32) || !defined(__GNUC__) ... #endif around finalize_global_cs(). -- ---------------------------------- Zoltán Böszörményi Cybertec Schönig & Schönig GmbH http://www.postgresql.at/
В списке pgsql-odbc по дате отправления: