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/