On Sat, 26 Jul 2003 18:12:15 +1000, Andrew Bevitt wrote: > >Ive just been trying to build the latest develoment snapshot (4.3.99.9) >and have come across an error in the compiling. > >xf86DDC.c: In function `DDCRead_DDC2': >xf86DDC.c:336: error: invalid lvalue in assignment >make[6]: *** [xf86DDC.o] Error 1 >make[6]: Leaving directory >`/var/tmp/portage/xfree-4.3.99.9/work/xc/programs/Xserver/hw/xfree86/ddc' > >I cant seem to find much on this at all, except the offending code which is >the line marked with !!!! in the following procedure from xf86DDC.c >... > xf86LoaderReqSymLists(i2cSymbols, NULL); > >!!!! if (!dev = xf86I2CFindDev(pBus, 0x00A0)) {
I'm surprised that so many people offered off-the-wall suggestions on chasing this down. The bang operator has a higher precedence than the equals operator, so this would have parsed as: if( (!dev) = xf86I2CFindDev(pBus, 0x00A0)) { And, as the error message quite correctly states, it is not valid to assign a value to the expression "!dev". I assume the fix (which Marc pointed to) was to fix the precedence this way: if( !(dev = xf86I2CFindDev(pBus, 0x00A0)) ) { It's interesting to me that this got into the CVS at all. Is there really a compiler which DOES compile the original line? Such a compiler would not be ISO compliant. -- - Tim Roberts, [EMAIL PROTECTED] Providenza & Boekelheide, Inc. _______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel