| Index: third_party/re2/re2/bitstate.cc | 
| diff --git a/third_party/re2/re2/bitstate.cc b/third_party/re2/re2/bitstate.cc | 
| index 518d6420127aa1e41dcb6a77625b7b19fc313616..5740daa486679549cfb33ef569d35c6225c72cfa 100644 | 
| --- a/third_party/re2/re2/bitstate.cc | 
| +++ b/third_party/re2/re2/bitstate.cc | 
| @@ -94,7 +94,7 @@ BitState::~BitState() { | 
| // If so, remember that it was visited so that the next time, | 
| // we don't repeat the visit. | 
| bool BitState::ShouldVisit(int id, const char* p) { | 
| -  uint n = id * (text_.size() + 1) + (p - text_.begin()); | 
| +  size_t n = id * (text_.size() + 1) + (p - text_.begin()); | 
| if (visited_[n/VisitedBits] & (1 << (n & (VisitedBits-1)))) | 
| return false; | 
| visited_[n/VisitedBits] |= 1 << (n & (VisitedBits-1)); | 
| @@ -170,6 +170,8 @@ bool BitState::TrySearch(int id0, const char* p0) { | 
| Prog::Inst* ip = prog_->inst(id); | 
| switch (ip->opcode()) { | 
| case kInstFail: | 
| +        return false; | 
| + | 
| default: | 
| LOG(DFATAL) << "Unexpected opcode: " << ip->opcode() << " arg " << arg; | 
| return false; | 
| @@ -270,7 +272,8 @@ bool BitState::TrySearch(int id0, const char* p0) { | 
| if (submatch_[0].data() == NULL || | 
| (longest_ && p > submatch_[0].end())) { | 
| for (int i = 0; i < nsubmatch_; i++) | 
| -            submatch_[i] = StringPiece(cap_[2*i], cap_[2*i+1] - cap_[2*i]); | 
| +            submatch_[i].set(cap_[2*i], | 
| +                             static_cast<int>(cap_[2*i+1] - cap_[2*i])); | 
| } | 
|  | 
| // If going for first match, we're done. | 
|  |