Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/lib/libc/arch/alpha/gen



On Wed, Mar 21, 2012 at 10:42:58PM +0200, Alan Barrett wrote:
> On Wed, 21 Mar 2012, Havard Eidnes wrote:
> >Modified Files:
> >     src/lib/libc/arch/alpha/gen: fpgetround.c fpsetround.c
> >
> >Log Message:
> >Add some casts to get rid of "bitwise op on signed value is non-portable"
> >warning from lint.
> 
> I see no bitwise ops on signed values here.
> 
> >-    return ((fpcrval.u64 >> 58) & 0x3);
> >+    return ((fp_rnd)(fpcrval.u64 >> 58) & 0x3);
> 
> fpcrval.u64 is uint64_t.  After the "integer promotions",
> it's still uint64_t (unless that's smaller than int, which is not 
> the case for any existing NetBSD port).  After >>58, it's still 
> uint64_t.  0x3 is a signed int, but the "usual arithmetic conversions"
> should convert it to uint64_t.

The commit message reference the wrong lint warning.

/local/src/NetBSD/src/lib/libc/arch/alpha/gen/fpgetround.c(61): warning: 
conversion from 'unsigned long' to 'enum <unnamed>' may lose accuracy [132]
/local/src/NetBSD/src/lib/libc/arch/alpha/gen/fpsetround.c(61): warning: 
conversion from 'unsigned long' to 'enum <unnamed>' may lose accuracy [132]

-- 
Nicolas Joly

Projects and Developments in Bioinformatics
Institut Pasteur, Paris.


Home | Main Index | Thread Index | Old Index