|  | @@ -52,7 +52,7 @@ namespace internal {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  inline size_t AlignUpTo8(size_t n) {
 | 
	
		
			
				|  |  |    // Align n to next multiple of 8 (from Hacker's Delight, Chapter 3.)
 | 
	
		
			
				|  |  | -  return (n + 7) & (size_t)-8;
 | 
	
		
			
				|  |  | +  return (n + 7) & static_cast<size_t>(-8);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // This class provides the core Arena memory allocation library. Different
 | 
	
	
		
			
				|  | @@ -306,8 +306,8 @@ class PROTOBUF_EXPORT ArenaImpl {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  |    // kBlockHeaderSize is sizeof(Block), aligned up to the nearest multiple of 8
 | 
	
		
			
				|  |  |    // to protect the invariant that pos is always at a multiple of 8.
 | 
	
		
			
				|  |  | -  static const size_t kBlockHeaderSize = (sizeof(Block) + 7) & (size_t)-8;
 | 
	
		
			
				|  |  | -  static const size_t kSerialArenaSize = (sizeof(SerialArena) + 7) & (size_t)-8;
 | 
	
		
			
				|  |  | +  static const size_t kBlockHeaderSize = (sizeof(Block) + 7) & static_cast<size_t>(-8);
 | 
	
		
			
				|  |  | +  static const size_t kSerialArenaSize = (sizeof(SerialArena) + 7) & static_cast<size_t>(-8);
 | 
	
		
			
				|  |  |    static_assert(kBlockHeaderSize % 8 == 0,
 | 
	
		
			
				|  |  |                  "kBlockHeaderSize must be a multiple of 8.");
 | 
	
		
			
				|  |  |    static_assert(kSerialArenaSize % 8 == 0,
 |