# HG changeset patch # User mikek # Date 1276930173 -3600 # Node ID b41fc9c39ca75b08b822b45ebd10ad2ac1bd4e1f # Parent d7c1885c01060904543398ff1f03aa917d3e5091 1) Fix for Bug 3027 - [GCCE] Unintended operator precedence in ambiguous expressions 2) Fix for Bug 3034 - [GCCE] FLASH_BUS macros are ambiguous w.r.t operator precedence diff -r d7c1885c0106 -r b41fc9c39ca7 bsptemplate/asspandvariant/template_variant/inc/lffsdev.h --- a/bsptemplate/asspandvariant/template_variant/inc/lffsdev.h Fri Jun 18 18:06:39 2010 +0100 +++ b/bsptemplate/asspandvariant/template_variant/inc/lffsdev.h Sat Jun 19 07:49:33 2010 +0100 @@ -47,18 +47,18 @@ #if FLASH_BUS_WIDTH == 32 #define TFLASHWORD TUint32 - #define FLASH_BYTES_TO_WORDS(aNumBytes) (aNumBytes >> 2) - #define FLASH_ADDRESS_IN_BYTES(aWordAddr) (aWordAddr << 2) + #define FLASH_BYTES_TO_WORDS(aNumBytes) ((aNumBytes) >> 2) + #define FLASH_ADDRESS_IN_BYTES(aWordAddr) ((aWordAddr) << 2) #define FLASH_ERASE_WORD_VALUE 0xFFFFFFFF #elif FLASH_BUS_WIDTH == 16 #define TFLASHWORD TUint16 - #define FLASH_BYTES_TO_WORDS(aNumBytes) (aNumBytes >> 1) - #define FLASH_ADDRESS_IN_BYTES(aWordAddr) (aWordAddr << 1) + #define FLASH_BYTES_TO_WORDS(aNumBytes) ((aNumBytes) >> 1) + #define FLASH_ADDRESS_IN_BYTES(aWordAddr) ((aWordAddr) << 1) #define FLASH_ERASE_WORD_VALUE 0xFFFF #else // FLASH_BUS_WIDTH == 8 #define TFLASHWORD TUint8 - #define FLASH_BYTES_TO_WORDS(aNumBytes) aNumBytes - #define FLASH_ADDRESS_IN_BYTES(aWordAddr) aWordAddr + #define FLASH_BYTES_TO_WORDS(aNumBytes) (aNumBytes) + #define FLASH_ADDRESS_IN_BYTES(aWordAddr) (aWordAddr) #define FLASH_ERASE_WORD_VALUE 0xFF #endif diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.cpp --- a/kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -872,7 +872,7 @@ // // ARM ARM DDI0406A - section A8.6.26 - if (inst32 & 0xFFF0FFFF == 0xE3C08F00) + if ((inst32 & 0xFFF0FFFF) == 0xE3C08F00) { LOG_MSG("ARM ARM DDI0406A - section A8.6.26 - BXJ is not supported"); @@ -885,7 +885,7 @@ // ARM ARM DDi046A - section B6.1.13 - SUBS PC,LR // // Encoding T1 - if (inst32 & 0xFFFFFF00 == 0xF3DE8F00) + if ((inst32 & 0xFFFFFF00) == 0xF3DE8F00) { LOG_MSG("ARM ARM DDI0406A - section B6.1.13 - SUBS PC,LR Encoding T1"); @@ -911,7 +911,7 @@ // ARM ARM DDI0406A - section A8.6.16 - B // // Branch Encoding T3 - if (inst32 & 0xF800D000 == 0xF0008000) + if ((inst32 & 0xF800D000) == 0xF0008000) { LOG_MSG("ARM ARM DDI0406A - section A8.6.16 - B Encoding T3"); @@ -936,7 +936,7 @@ // ARM ARM DDI0406A - section A8.6.16 - B // // Branch Encoding T4 - if (inst32 & 0xF800D000 == 0xF0009000) + if ((inst32 & 0xF800D000) == 0xF0009000) { LOG_MSG("ARM ARM DDI0406A - section A8.6.16 - B"); @@ -965,7 +965,7 @@ // ARM ARM DDI0406A - section A8.6.225 - TBB, TBH // // Table Branch Byte, Table Branch Halfword - if (inst32 & 0xFFF0FFE0 == 0xE8D0F000) + if ((inst32 & 0xFFF0FFE0) == 0xE8D0F000) { LOG_MSG("ARM ARM DDI0406A - section A8.6.225 TBB,TBH Encoding T1"); @@ -1006,7 +1006,7 @@ // ARM ARM DDI0406A - section A8.6.55 - LDMDB, LDMEA // // LDMDB Encoding T1 - if (inst32 & 0xFFD02000 == 0xE9100000) + if ((inst32 & 0xFFD02000) == 0xE9100000) { LOG_MSG("ARM ARM DDI0406 - section A8.6.55 LDMDB Encoding T1"); @@ -1052,7 +1052,7 @@ // ARM ARM DDI0406A - section A8.6.121 POP // // POP.W Encoding T2 - if (inst32 & 0xFFFF2000 == 0xE8BD0000) + if ((inst32 & 0xFFFF2000) == 0xE8BD0000) { LOG_MSG("ARM ARM DDI0406A - section A8.6.121 POP Encoding T2"); @@ -1088,7 +1088,7 @@ } // POP Encoding T3 - if (inst32 & 0xFFFF0FFFF == 0xF85D0B04) + if ((inst32 & 0xFFFF0FFFF) == 0xF85D0B04) { LOG_MSG("ARM ARM DDI0406A - section A8.6.121 POP Encoding T3"); diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.inl --- a/kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.inl Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.inl Sat Jun 19 07:49:33 2010 +0100 @@ -238,7 +238,7 @@ { //#define ARM_B_ADDR(x) ((x & 0x00800000) ? ((TUint32)(x) & 0x00FFFFFF | 0xFF000000) : (TUint32)(x) & 0x00FFFFFF) - TUint32 aVal = ((aInst & 0x00800000) ? ((TUint32)(aInst) & 0x00FFFFFF | 0xFF000000) : (TUint32)(aInst) & 0x00FFFFFF); + TUint32 aVal = ((aInst & 0x00800000) ? (((TUint32)(aInst) & 0x00FFFFFF) | 0xFF000000) : (TUint32)(aInst) & 0x00FFFFFF); return aVal; } diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/drivers/ecomm/d_comm.cpp --- a/kernel/eka/drivers/ecomm/d_comm.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/drivers/ecomm/d_comm.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -933,7 +933,7 @@ { // Replace bad character if (iConfig.iParityError==KConfigParityErrorReplaceChar) - c = c & ~(0xff|KReceiveIsrParityError) | iConfig.iParityErrorChar; + c = (c & ~(0xff|KReceiveIsrParityError)) | iConfig.iParityErrorChar; // Ignore parity error if (iConfig.iParityError==KConfigParityErrorIgnore) c = c & ~KReceiveIsrParityError; diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/drivers/pbus/mmc/stack.cpp --- a/kernel/eka/drivers/pbus/mmc/stack.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/drivers/pbus/mmc/stack.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -2453,8 +2453,8 @@ DISABLEPREEMPTION - if( !iAbortReq && - ((iStackState & KMMCStackStateWaitingDFC) || + if( ((!iAbortReq && + ((iStackState & KMMCStackStateWaitingDFC))) || (iCompReq | iInitialise | iAttention)==0) || ((iSessionP) && (iSessionP->iState & KMMCSessStateAllowDirectCommands))) { diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/drivers/trace/btracec.cpp --- a/kernel/eka/drivers/trace/btracec.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/drivers/trace/btracec.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -213,7 +213,7 @@ if (--retries<0) return KErrInUse; // sleep every 8 tries to give the write a chance - if (retries&7==0) + if ((retries&7)==0) User::AfterHighRes(1); g0 = iGeneration; __e32_memory_barrier(); diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/drivers/usbcsc/d_usbcsc.cpp --- a/kernel/eka/drivers/usbcsc/d_usbcsc.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/drivers/usbcsc/d_usbcsc.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -3523,7 +3523,7 @@ } - if (iBuffer && (iBuffer->iStatusList.iState) || (!iRealEpNumber)) + if ((iBuffer && (iBuffer->iStatusList.iState)) || (!iRealEpNumber)) { if (iRequestCallbackInfo->iTransferDir==EControllerWrite) iController->CancelWriteBuffer(iLdd, iRealEpNumber); diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/drivers/usbcsc/usbcsc_bil.cpp --- a/kernel/eka/drivers/usbcsc/usbcsc_bil.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/drivers/usbcsc/usbcsc_bil.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -160,7 +160,7 @@ TUint localTail = endpointHdr->iBilTail; TUsbcScTransferHeader* currentTransfer = (TUsbcScTransferHeader*) (base + localTail); - if ((localTail == (TUint)endpointHdr->iHead) || (currentTransfer->iAltSettingSeq != (iAltSettingSeq+1)&0xFFFF)) + if ((localTail == (TUint)endpointHdr->iHead) || (currentTransfer->iAltSettingSeq != ((iAltSettingSeq+1)&0xFFFF))) // if alternate setting has not changed return KErrNotReady; else diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/ewsrv/ky_tran.cpp --- a/kernel/eka/ewsrv/ky_tran.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/ewsrv/ky_tran.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -451,8 +451,8 @@ iDigits+=ch.DigitValue(); iErrorFlag=(TBool)(iErrorFlag || !ch.IsDigitGivenRadix(iRadix) - || (iTermination==ETerminationByCtrlUp) - && ((aModifiers&EModifierCtrl)==0)); + || ((iTermination==ETerminationByCtrlUp) + && ((aModifiers&EModifierCtrl)==0))); } // TBool TCtrlDigits::Terminated(TInt aModifiers) const diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/include/page_alloc.h --- a/kernel/eka/include/page_alloc.h Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/include/page_alloc.h Sat Jun 19 07:49:33 2010 +0100 @@ -18,7 +18,7 @@ #ifndef __KERNEL_MODE__ const int MAXSMALLPAGEBITS = 68<<3; -#define MINPAGEPOWER PAGESHIFT+2 +#define MINPAGEPOWER ((PAGESHIFT)+2) struct paged_bitmap { diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/kernel/kdebug.cpp --- a/kernel/eka/kernel/kdebug.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/kernel/kdebug.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -563,7 +563,7 @@ DChunk* chunk = (DChunk*)a1; //The chunk will not neccesarily have an owning process. - interested = hdrPresent && ( !chunk->iOwningProcess && hdr->iFlags & TFilterHeader::EGlobalEvents || + interested = hdrPresent && ( (!chunk->iOwningProcess && hdr->iFlags & TFilterHeader::EGlobalEvents) || (chunk->iOwningProcess && DEventHandler::InterestedIn(aType, *(chunk->iOwningProcess->iName)))); Change() |= KDebuggerChangeChunk; diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/kernel/smonitor.cpp --- a/kernel/eka/kernel/smonitor.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/kernel/smonitor.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -655,7 +655,7 @@ __KTRACE_OPT(KALWAYS,Kern::Printf("All monitors have completed. Restarting...")); //Ensure all characters make it to the serial port... __KTRACE_OPT(KALWAYS,Kern::Printf(" ")); - if(restartType&ESoftRestart == ESoftRestart) + if((restartType&ESoftRestart) == ESoftRestart) Kern::Restart(0); else //EHardRestart Kern::Restart(0x80000000); diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/kernel/sprocess.cpp --- a/kernel/eka/kernel/sprocess.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/kernel/sprocess.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -115,7 +115,7 @@ TInt DProcess::SetPaging(const TProcessCreateInfo& aInfo) {// Default implementation that only verifies flags, this virtual method // is overridden in memory models that support paging. - if (aInfo.iFlags & TProcessCreateInfo::EDataPagingMask == + if ((aInfo.iFlags & TProcessCreateInfo::EDataPagingMask) == TProcessCreateInfo::EDataPagingMask) { return KErrCorrupt; diff -r d7c1885c0106 -r b41fc9c39ca7 kernel/eka/memmodel/epoc/mmubase/ramalloc.cpp --- a/kernel/eka/memmodel/epoc/mmubase/ramalloc.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/kernel/eka/memmodel/epoc/mmubase/ramalloc.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -396,9 +396,9 @@ aZone->iFlags &= ~KRamZoneFlagMark; // clear the mark as this zone is active // Check if power state of zone needs to be changed - if (iZonePowerFunc && !(iZonePwrState & (((TUint64)1) << aZone - iZones))) + if (iZonePowerFunc && !(iZonePwrState & (((TUint64)1) << (aZone - iZones)))) {//zone no longer empty so call variant to power RAM zone up if necessary - iZonePwrState |= (((TUint64)1) << aZone - iZones); + iZonePwrState |= (((TUint64)1) << (aZone - iZones)); if (iZoneCallbackInitSent) { @@ -541,7 +541,7 @@ if (iZonePowerFunc && !(aZone->iFlags & KRamZoneFlagClaiming) && aZone->iFreePages == aZone->iPhysPages) {// Zone is empty so call variant to power down RAM zone if desirable. - TUint64 pwrMask = ~(((TUint64)1) << aZone - iZones); + TUint64 pwrMask = ~(((TUint64)1) << (aZone - iZones)); iZonePwrState &= pwrMask; // Don't invoke callback until Init callback sent. @@ -1009,7 +1009,7 @@ for (; zone2 < lastZone; zone2++) { if (zone->iPref > zone2->iPref || - zone->iPref == zone2->iPref && zone->iFreePages > zone2->iFreePages) + (zone->iPref == zone2->iPref && zone->iFreePages > zone2->iFreePages)) { lowerZones++; } diff -r d7c1885c0106 -r b41fc9c39ca7 userlibandfileserver/fileserver/sfat/sl_utl.cpp --- a/userlibandfileserver/fileserver/sfat/sl_utl.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/userlibandfileserver/fileserver/sfat/sl_utl.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -203,7 +203,7 @@ chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w0 << 8) >> 24)); chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ( w0 >> 24)); - chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + (w1) & 0xFF); + chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + (w1 & 0xFF)); chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w1 << 16) >> 24)); chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w1 << 8) >> 24)); chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ( w1 >> 24)); diff -r d7c1885c0106 -r b41fc9c39ca7 userlibandfileserver/fileserver/sfat32/sl_utl.cpp --- a/userlibandfileserver/fileserver/sfat32/sl_utl.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/userlibandfileserver/fileserver/sfat32/sl_utl.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -150,7 +150,7 @@ chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w0 << 8) >> 24)); chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ( w0 >> 24)); - chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + (w1) & 0xFF); + chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + (w1 & 0xFF)); chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w1 << 16) >> 24)); chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w1 << 8) >> 24)); chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ( w1 >> 24)); diff -r d7c1885c0106 -r b41fc9c39ca7 userlibandfileserver/fileserver/sfile/sf_thread.cpp --- a/userlibandfileserver/fileserver/sfile/sf_thread.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/userlibandfileserver/fileserver/sfile/sf_thread.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -379,7 +379,7 @@ TUint id=RThread().Id(); if(aIsLock) t.iFSLock.Wait(); - TBool b = t.iIsAvailable && (!t.iIsSync && t.iId==id || t.iIsSync); + TBool b = t.iIsAvailable && ((!t.iIsSync && t.iId==id) || t.iIsSync); if(aIsLock) t.iFSLock.Signal(); return(b); diff -r d7c1885c0106 -r b41fc9c39ca7 userlibandfileserver/fileserver/sfsrv/cl_fman.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_fman.cpp Fri Jun 18 18:06:39 2010 +0100 +++ b/userlibandfileserver/fileserver/sfsrv/cl_fman.cpp Sat Jun 19 07:49:33 2010 +0100 @@ -2480,7 +2480,7 @@ TInt r=KErrNotFound; if (iAction == EInternalRmDir || (iAction == EInternalCopyForMove && ((iMatchEntry & KMovingFilesMask) != KMovingFilesMask) && !iMovingContents && !iSrcFile.IsRoot()) || - iAction == EInternalRenameForMove && !iMovingContents && iNumberOfFilesProcessed) + (iAction == EInternalRenameForMove && !iMovingContents && iNumberOfFilesProcessed)) { r=iFs.RmDir(iSrcFile.FullName()); if ((r!=KErrNone && r!=KErrNotFound && iAction!=EInternalRenameForMove && r!=KErrInUse) || (iAction == EInternalRmDir && r == KErrInUse))