1*6777b538SAndroid Build Coastguard Workerdiff --git a/src/google/protobuf/parse_context.h b/src/google/protobuf/parse_context.h
2*6777b538SAndroid Build Coastguard Workerindex 15051c3eba82f..525ddb2a22870 100644
3*6777b538SAndroid Build Coastguard Worker--- a/src/google/protobuf/parse_context.h
4*6777b538SAndroid Build Coastguard Worker+++ b/src/google/protobuf/parse_context.h
5*6777b538SAndroid Build Coastguard Worker@@ -327,7 +327,7 @@ class PROTOBUF_EXPORT EpsCopyInputStream {
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker   template <typename A>
8*6777b538SAndroid Build Coastguard Worker   const char* AppendSize(const char* ptr, int size, const A& append) {
9*6777b538SAndroid Build Coastguard Worker-    int chunk_size = buffer_end_ + kSlopBytes - ptr;
10*6777b538SAndroid Build Coastguard Worker+    int chunk_size = static_cast<int>(buffer_end_ + kSlopBytes - ptr);
11*6777b538SAndroid Build Coastguard Worker     do {
12*6777b538SAndroid Build Coastguard Worker       GOOGLE_DCHECK(size > chunk_size);
13*6777b538SAndroid Build Coastguard Worker       if (next_chunk_ == nullptr) return nullptr;
14*6777b538SAndroid Build Coastguard Worker@@ -341,7 +341,7 @@ class PROTOBUF_EXPORT EpsCopyInputStream {
15*6777b538SAndroid Build Coastguard Worker       ptr = Next();
16*6777b538SAndroid Build Coastguard Worker       if (ptr == nullptr) return nullptr;  // passed the limit
17*6777b538SAndroid Build Coastguard Worker       ptr += kSlopBytes;
18*6777b538SAndroid Build Coastguard Worker-      chunk_size = buffer_end_ + kSlopBytes - ptr;
19*6777b538SAndroid Build Coastguard Worker+      chunk_size = static_cast<int>(buffer_end_ + kSlopBytes - ptr);
20*6777b538SAndroid Build Coastguard Worker     } while (size > chunk_size);
21*6777b538SAndroid Build Coastguard Worker     append(ptr, size);
22*6777b538SAndroid Build Coastguard Worker     return ptr + size;
23*6777b538SAndroid Build Coastguard Worker@@ -785,7 +785,7 @@ template <typename T>
24*6777b538SAndroid Build Coastguard Worker const char* EpsCopyInputStream::ReadPackedFixed(const char* ptr, int size,
25*6777b538SAndroid Build Coastguard Worker                                                 RepeatedField<T>* out) {
26*6777b538SAndroid Build Coastguard Worker   GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
27*6777b538SAndroid Build Coastguard Worker-  int nbytes = buffer_end_ + kSlopBytes - ptr;
28*6777b538SAndroid Build Coastguard Worker+  int nbytes = static_cast<int>(buffer_end_ + kSlopBytes - ptr);
29*6777b538SAndroid Build Coastguard Worker   while (size > nbytes) {
30*6777b538SAndroid Build Coastguard Worker     int num = nbytes / sizeof(T);
31*6777b538SAndroid Build Coastguard Worker     int old_entries = out->size();
32*6777b538SAndroid Build Coastguard Worker@@ -803,7 +803,7 @@ const char* EpsCopyInputStream::ReadPackedFixed(const char* ptr, int size,
33*6777b538SAndroid Build Coastguard Worker     ptr = Next();
34*6777b538SAndroid Build Coastguard Worker     if (ptr == nullptr) return nullptr;
35*6777b538SAndroid Build Coastguard Worker     ptr += kSlopBytes - (nbytes - block_size);
36*6777b538SAndroid Build Coastguard Worker-    nbytes = buffer_end_ + kSlopBytes - ptr;
37*6777b538SAndroid Build Coastguard Worker+    nbytes = static_cast<int>(buffer_end_ + kSlopBytes - ptr);
38*6777b538SAndroid Build Coastguard Worker   }
39*6777b538SAndroid Build Coastguard Worker   int num = size / sizeof(T);
40*6777b538SAndroid Build Coastguard Worker   int old_entries = out->size();
41*6777b538SAndroid Build Coastguard Worker@@ -835,11 +835,11 @@ template <typename Add>
42*6777b538SAndroid Build Coastguard Worker const char* EpsCopyInputStream::ReadPackedVarint(const char* ptr, Add add) {
43*6777b538SAndroid Build Coastguard Worker   int size = ReadSize(&ptr);
44*6777b538SAndroid Build Coastguard Worker   GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
45*6777b538SAndroid Build Coastguard Worker-  int chunk_size = buffer_end_ - ptr;
46*6777b538SAndroid Build Coastguard Worker+  int chunk_size = static_cast<int>(buffer_end_ - ptr);
47*6777b538SAndroid Build Coastguard Worker   while (size > chunk_size) {
48*6777b538SAndroid Build Coastguard Worker     ptr = ReadPackedVarintArray(ptr, buffer_end_, add);
49*6777b538SAndroid Build Coastguard Worker     if (ptr == nullptr) return nullptr;
50*6777b538SAndroid Build Coastguard Worker-    int overrun = ptr - buffer_end_;
51*6777b538SAndroid Build Coastguard Worker+    int overrun = static_cast<int>(ptr - buffer_end_);
52*6777b538SAndroid Build Coastguard Worker     GOOGLE_DCHECK(overrun >= 0 && overrun <= kSlopBytes);
53*6777b538SAndroid Build Coastguard Worker     if (size - chunk_size <= kSlopBytes) {
54*6777b538SAndroid Build Coastguard Worker       // The current buffer contains all the information needed, we don't need
55*6777b538SAndroid Build Coastguard Worker@@ -860,7 +860,7 @@ const char* EpsCopyInputStream::ReadPackedVarint(const char* ptr, Add add) {
56*6777b538SAndroid Build Coastguard Worker     ptr = Next();
57*6777b538SAndroid Build Coastguard Worker     if (ptr == nullptr) return nullptr;
58*6777b538SAndroid Build Coastguard Worker     ptr += overrun;
59*6777b538SAndroid Build Coastguard Worker-    chunk_size = buffer_end_ - ptr;
60*6777b538SAndroid Build Coastguard Worker+    chunk_size = static_cast<int>(buffer_end_ - ptr);
61*6777b538SAndroid Build Coastguard Worker   }
62*6777b538SAndroid Build Coastguard Worker   auto end = ptr + size;
63*6777b538SAndroid Build Coastguard Worker   ptr = ReadPackedVarintArray(ptr, end, add);
64*6777b538SAndroid Build Coastguard Worker@@ -883,7 +883,7 @@ PROTOBUF_NODISCARD PROTOBUF_EXPORT const char* InlineGreedyStringParser(
65*6777b538SAndroid Build Coastguard Worker template <typename T>
66*6777b538SAndroid Build Coastguard Worker PROTOBUF_NODISCARD const char* FieldParser(uint64_t tag, T& field_parser,
67*6777b538SAndroid Build Coastguard Worker                                            const char* ptr, ParseContext* ctx) {
68*6777b538SAndroid Build Coastguard Worker-  uint32_t number = tag >> 3;
69*6777b538SAndroid Build Coastguard Worker+  uint32_t number = static_cast<uint32_t>(tag >> 3);
70*6777b538SAndroid Build Coastguard Worker   GOOGLE_PROTOBUF_PARSER_ASSERT(number != 0);
71*6777b538SAndroid Build Coastguard Worker   using WireType = internal::WireFormatLite::WireType;
72*6777b538SAndroid Build Coastguard Worker   switch (tag & 7) {
73