message: Resolve static analysis complain about use-after-move.
  Summary: Although there is no flaw in this code, the static analysis does not see that the remaining variable controls the flow path and considers the use of the data after move a failure.
diff: @@ -311,7 +311,14 @@ void QuicServerWorker::onDataAvailable(
  size_t remaining = len;
  size_t offset = 0;
  while (remaining) {
  - if (static_cast<int>(remaining) > params.gro) {
  + if (static_cast<int>(remaining) <= params.gro) {
  + // do not clone the last packet
  + // start at offset, use all the remaining data
  + data->trimStart(offset);
  + DCHECK_EQ(data->length(), remaining);
  + handleNetworkData(client, std::move(data), packetReceiveTime);
  + break;
  + }
  auto tmp = data->cloneOne();
  // start at offset
  tmp->trimStart(offset);
  @@ -319,18 +326,9 @@ void QuicServerWorker::onDataAvailable(
  // leave params.gro_ bytes
  tmp->trimEnd(len - offset - params.gro);
  DCHECK_EQ(tmp->length(), params.gro);
  -
  offset += params.gro;
  remaining -= params.gro;
  handleNetworkData(client, std::move(tmp), packetReceiveTime);
  - } else {
  - // do not clone the last packet
  - // start at offset, use all the remaining data
  - data->trimStart(offset);
  - DCHECK_EQ(data->length(), remaining);
  - remaining = 0;
  - handleNetworkData(client, std::move(data), packetReceiveTime);
  - }
  }
  }
  }
  