Fix some 32-bit shift warnings in MSVC
authorDavid Rowley <[email protected]>
Thu, 24 Nov 2022 22:05:22 +0000 (11:05 +1300)
committerDavid Rowley <[email protected]>
Thu, 24 Nov 2022 22:05:22 +0000 (11:05 +1300)
7b378237a widened AclMode to 64 bits which resulted in 3 new additional
warnings on MSVC.  Here we make use of UINT64CONST to reassure the
compiler that we do intend the bit shift expression to yield a 64-bit
result.

Discussion: https://postgr.es/m/CAApHDvo=pn01Y_3zASZZqn+cotF1c4QFCwWgk6MiF0VscaE5ug@mail.gmail.com

src/backend/utils/adt/acl.c

index d4d68f97243cf0664e4dfae86f6ecfec1fe17c60..f8eedfe1700ba0ee5054f9bb4bfeb0e3a7cfcb73 100644 (file)
@@ -626,9 +626,9 @@ aclitemout(PG_FUNCTION_ARGS)
 
    for (i = 0; i < N_ACL_RIGHTS; ++i)
    {
-       if (ACLITEM_GET_PRIVS(*aip) & (1 << i))
+       if (ACLITEM_GET_PRIVS(*aip) & (UINT64CONST(1) << i))
            *p++ = ACL_ALL_RIGHTS_STR[i];
-       if (ACLITEM_GET_GOPTIONS(*aip) & (1 << i))
+       if (ACLITEM_GET_GOPTIONS(*aip) & (UINT64CONST(1) << i))
            *p++ = '*';
    }
 
@@ -1786,7 +1786,7 @@ aclexplode(PG_FUNCTION_ARGS)
                break;
        }
        aidata = &aidat[idx[0]];
-       priv_bit = 1 << idx[1];
+       priv_bit = UINT64CONST(1) << idx[1];
 
        if (ACLITEM_GET_PRIVS(*aidata) & priv_bit)
        {