Re: [Nagios-devel] warning: left shift count >= width of type (i386)
Posted: Mon Sep 03, 2012 7:49 pm
* Ricardo Jose Maraschini ([email protected]) wrote:
> OK, I'm not pretty sure about following, but here we go.
> I tried to compile current nagios on a i386 arch and received the
> following warning:
>
> squeue.c:34: warning: left shift count >= width of type
>
> If i'm right, long is four bytes long on i386 arch, and as tv_sec is
> a long(accordingly to gettimeofday(2)) the result of line 34 on squeue.c
> is unpredictable.
>
> Am I right or I'm missing something?
>
> Compiling on a sparc64 and in a x86_64 environment i haven't received
> the same warning. On these architectures, sizeof(long) shows me 8 bytes.
>
> What are the performance implications of my patch below?
>
> -rm
The patch below seems to be much more appropriate than the previous one.
===================================================================
--- lib/squeue.c (revision 2138)
+++ lib/squeue.c (working copy)
@@ -31,7 +31,7 @@
static pqueue_pri_t evt_compute_pri(struct timeval *tv)
{
- return (tv->tv_sec tv_usec;
+ return ((pqueue_pri_t)tv->tv_sec tv_usec;
}
static int sq_cmp_pri(pqueue_pri_t next, pqueue_pri_t cur)
This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]
> OK, I'm not pretty sure about following, but here we go.
> I tried to compile current nagios on a i386 arch and received the
> following warning:
>
> squeue.c:34: warning: left shift count >= width of type
>
> If i'm right, long is four bytes long on i386 arch, and as tv_sec is
> a long(accordingly to gettimeofday(2)) the result of line 34 on squeue.c
> is unpredictable.
>
> Am I right or I'm missing something?
>
> Compiling on a sparc64 and in a x86_64 environment i haven't received
> the same warning. On these architectures, sizeof(long) shows me 8 bytes.
>
> What are the performance implications of my patch below?
>
> -rm
The patch below seems to be much more appropriate than the previous one.
===================================================================
--- lib/squeue.c (revision 2138)
+++ lib/squeue.c (working copy)
@@ -31,7 +31,7 @@
static pqueue_pri_t evt_compute_pri(struct timeval *tv)
{
- return (tv->tv_sec tv_usec;
+ return ((pqueue_pri_t)tv->tv_sec tv_usec;
}
static int sq_cmp_pri(pqueue_pri_t next, pqueue_pri_t cur)
This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]