Re: ConnInfo assumes signed char

Lists: pgsql-odbc
From: Oliver Elphick <olly(at)lfix(dot)co(dot)uk>
To: pgsql-odbc(at)postgresql(dot)org
Subject: ConnInfo assumes signed char
Date: 2003-02-07 18:13:17
Message-ID: 1044641597.6898.141.camel@linda.lfix.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-odbc

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(dot)Elphick(at)lfix(dot)co(dot)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


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Oliver Elphick <olly(at)lfix(dot)co(dot)uk>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: ConnInfo assumes signed char
Date: 2003-02-08 17:16:35
Message-ID: 17748.1044724595@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-odbc

Oliver Elphick <olly(at)lfix(dot)co(dot)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


From: Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp>
To: Oliver Elphick <olly(at)lfix(dot)co(dot)uk>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: ConnInfo assumes signed char
Date: 2003-02-10 06:59:28
Message-ID: 3E474DD0.C6ACA75B@tpf.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-odbc

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/