VirtualBox

Changeset 57682 in vbox


Ignore:
Timestamp:
Sep 10, 2015 9:47:45 AM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
102585
Message:

ASMBitClearRange()/ASMBitSetRange(): use 1U for bit shifts, otherwise the gcc sanitizer complains about negating of INT_MIN which is not possible

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/asm.h

    r57647 r57682  
    43224322        int iEnd   = iBitEnd & ~31;
    43234323        if (iStart == iEnd)
    4324             *pu32 &= ((1 << (iBitStart & 31)) - 1) | ~((1 << (iBitEnd & 31)) - 1);
     4324            *pu32 &= ((1U << (iBitStart & 31)) - 1) | ~((1U << (iBitEnd & 31)) - 1);
    43254325        else
    43264326        {
     
    43284328            if (iBitStart & 31)
    43294329            {
    4330                 *pu32 &= (1 << (iBitStart & 31)) - 1;
     4330                *pu32 &= (1U << (iBitStart & 31)) - 1;
    43314331                pu32++;
    43324332                iBitStart = iStart + 32;
     
    43414341            {
    43424342                pu32 = (volatile uint32_t *)pvBitmap + (iBitEnd >> 5);
    4343                 *pu32 &= ~((1 << (iBitEnd & 31)) - 1);
     4343                *pu32 &= ~((1U << (iBitEnd & 31)) - 1);
    43444344            }
    43454345        }
     
    43634363        int iEnd   = iBitEnd & ~31;
    43644364        if (iStart == iEnd)
    4365             *pu32 |= ((1 << (iBitEnd - iBitStart)) - 1) << (iBitStart & 31);
     4365            *pu32 |= ((1U << (iBitEnd - iBitStart)) - 1) << (iBitStart & 31);
    43664366        else
    43674367        {
     
    43694369            if (iBitStart & 31)
    43704370            {
    4371                 *pu32 |= ~((1 << (iBitStart & 31)) - 1);
     4371                *pu32 |= ~((1U << (iBitStart & 31)) - 1);
    43724372                pu32++;
    43734373                iBitStart = iStart + 32;
     
    43824382            {
    43834383                pu32 = (volatile uint32_t *)pvBitmap + (iBitEnd >> 5);
    4384                 *pu32 |= (1 << (iBitEnd & 31)) - 1;
     4384                *pu32 |= (1U << (iBitEnd & 31)) - 1;
    43854385            }
    43864386        }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette