Thread: ConnInfo assumes signed char
ConnInfo, defined in connection.h, assumes that char = signed char. This is not true of Linux on arm, powerpc and s390, and possibly other platforms. As a result: gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c dlg_specific.c -MT dlg_specific.lo -MD -MP -MF .deps/dlg_specific.TPlo -fPIC -DPIC-o dlg_specific.lo dlg_specific.c: In function `getDSNdefaults': dlg_specific.c:398: warning: comparison is always false due to limited range of data type dlg_specific.c:400: warning: comparison is always false due to limited range of data type dlg_specific.c:402: warning: comparison is always false due to limited range of data type dlg_specific.c:404: warning: comparison is always false due to limited range of data type dlg_specific.c:406: warning: comparison is always false due to limited range of data type dlg_specific.c: In function `getDSNinfo': dlg_specific.c:484: warning: comparison is always false due to limited range of data type dlg_specific.c:491: warning: comparison is always false due to limited range of data type dlg_specific.c:498: warning: comparison is always false due to limited range of data type dlg_specific.c:505: warning: comparison is always false due to limited range of data type dlg_specific.c:512: warning: comparison is always false due to limited range of data type The problem still exists in current CVS. Where char may contain a negative value, it should explicitly be declared as signed char. -- Oliver Elphick Oliver.Elphick@lfix.co.uk Isle of Wight, UK http://www.lfix.co.uk/oliver GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C ======================================== "But the LORD is in his holy temple; let all the earth keep silence before him." Habakkuk 2:20
Oliver Elphick <olly@lfix.co.uk> writes: > ConnInfo, defined in connection.h, assumes that char = signed char. I agree, this is a genuine bug. It appears to have been introduced post-7.2, as the ODBC sources in the REL7_2 branch don't seem to try to assign negative values to these fields. regards, tom lane
Oliver Elphick wrote: > > ConnInfo, defined in connection.h, assumes that char = signed char. > > This is not true of Linux on arm, powerpc and s390, and possibly other > platforms. As a result: > > gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c dlg_specific.c -MT dlg_specific.lo -MD -MP -MF .deps/dlg_specific.TPlo -fPIC-DPIC -o dlg_specific.lo > dlg_specific.c: In function `getDSNdefaults': > dlg_specific.c:398: warning: comparison is always false due to limited range of data type > dlg_specific.c:400: warning: comparison is always false due to limited range of data type > dlg_specific.c:402: warning: comparison is always false due to limited range of data type > dlg_specific.c:404: warning: comparison is always false due to limited range of data type > dlg_specific.c:406: warning: comparison is always false due to limited range of data type > dlg_specific.c: In function `getDSNinfo': > dlg_specific.c:484: warning: comparison is always false due to limited range of data type > dlg_specific.c:491: warning: comparison is always false due to limited range of data type > dlg_specific.c:498: warning: comparison is always false due to limited range of data type > dlg_specific.c:505: warning: comparison is always false due to limited range of data type > dlg_specific.c:512: warning: comparison is always false due to limited range of data type > > The problem still exists in current CVS. > > Where char may contain a negative value, it should explicitly be > declared as signed char. OK I changed them to *signed char*s (maybe). Thanks. regards, Hiroshi Inoue http://www.geocities.jp/inocchichichi/psqlodbc/