[clang] 68b8908 - [Clang[NFC] Fix bitmask for NullabilityPayload in Types.h

Shivam Gupta via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 23 06:47:58 PST 2023


Author: Shivam Gupta
Date: 2023-01-23T20:18:08+05:30
New Revision: 68b890831615fc4350a47cf7ec404156128d03ac

URL: https://github.com/llvm/llvm-project/commit/68b890831615fc4350a47cf7ec404156128d03ac
DIFF: https://github.com/llvm/llvm-project/commit/68b890831615fc4350a47cf7ec404156128d03ac.diff

LOG: [Clang[NFC] Fix bitmask for NullabilityPayload in Types.h

Found by PVS-Studio - https://pvs-studio.com/en/blog/posts/cpp/1003/, N37.

The code you is using the bit mask NullabilityKindMask which is 0x3
(00000011 in binary) to clear the bits in the NullabilityPayload variable.
Since NullabilityPayload is a 64-bit variable and NullabilityKindMask is
only a 8-bit variable(0x3), it will only affect the last 8 bits of the
variable. The higher 56 bits will remain unchanged.

Differential Revision: https://reviews.llvm.org/D142334

Added: 
    

Modified: 
    clang/include/clang/APINotes/Types.h

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/APINotes/Types.h b/clang/include/clang/APINotes/Types.h
index af5f05bc0d365..61f3592ea145b 100644
--- a/clang/include/clang/APINotes/Types.h
+++ b/clang/include/clang/APINotes/Types.h
@@ -482,7 +482,7 @@ inline bool operator!=(const ParamInfo &LHS, const ParamInfo &RHS) {
 /// API notes for a function or method.
 class FunctionInfo : public CommonEntityInfo {
 private:
-  static constexpr const unsigned NullabilityKindMask = 0x3;
+  static constexpr const uint64_t NullabilityKindMask = 0x3;
   static constexpr const unsigned NullabilityKindSize = 2;
 
   static constexpr const unsigned ReturnInfoIndex = 0;


        


More information about the cfe-commits mailing list