Re: Compile error
- From: Peter Bloomfield <PeterBloomfield bellsouth net>
- To: balsa-list gnome org
- Subject: Re: Compile error
- Date: Tue, 15 Mar 2022 11:41:57 -0400
Hi Albrecht!
On 03/14/2022 04:56:42 PM Mon, Albrecht Dreß via balsa-list wrote:
Hi Andreas,
thanks a lot for your report!
Am 14.03.22 13:52 schrieb(en) AS via balsa-list:
mailbox_imap.c: In function ‘libbalsa_mailbox_imap_fetch_headers’:
mailbox_imap.c:2333:15: error: comparison of integer expressions of different signedness: ‘glong’
{aka ‘long int’} and ‘unsigned int’ [-Werror=sign-compare]
2333 | if (msgno > imap_mbox_handle_get_exists(mimap->handle))
| ^
cc1: all warnings being treated as errors
Yes, that's a bug in the code! Which probably slipped through with older compilers than on Debian unstable…
I'm not really familiar with the IMAP code, but I *think* the trivial solution would be to declare msgno as
unsigned in line 2328, and to add a cast to unsigned in line 2330, as all the imap_* functions use unsigned
as parameters. Peter?
Best,
Albrecht.
Yes, that should fix it!
But I'm left with a few questions:
• First, why didn't I get that warning/error when I committed that test a year ago? Meson sets "-Wall", which implies
"-Wsign-compare", and even including "-Wsign-compare" explicitly doesn't result in the warning!
• Also, why does Balsa use a signed type for message numbers? They are 1-based, and zero is already used as
the invalid value, so all negative values are presumably unused.
• And "glong" (aka "long int", or "long") seems extravagant; it's presumably left over from when 16-bit ints were
common but a mailbox with more than 32,767 messages was possible; surely "unsigned" would be adequate today.
Peter
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]