From f073fe8ee5dcb0aa18c893198747062f2f51ab59 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Thu, 13 Oct 2022 14:12:39 -0700 Subject: Fix "unsafe narrowing" warnings in absl, 12/12. Addresses failures with the following, in some files: -Wshorten-64-to-32 -Wimplicit-int-conversion -Wsign-compare -Wsign-conversion -Wtautological-unsigned-zero-compare (This specific CL enables these warnings and fixes the remaining known issues.) Bug: chromium:1292951 PiperOrigin-RevId: 480981210 Change-Id: I92d5023c6833e24d6aa29b10d433116329972f41 --- absl/random/internal/fast_uniform_bits.h | 3 ++- absl/random/internal/nonsecure_base.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'absl/random') diff --git a/absl/random/internal/fast_uniform_bits.h b/absl/random/internal/fast_uniform_bits.h index f3a5c00f..8d8ed045 100644 --- a/absl/random/internal/fast_uniform_bits.h +++ b/absl/random/internal/fast_uniform_bits.h @@ -151,7 +151,8 @@ FastUniformBits::Generate(URBG& g, // NOLINT(runtime/references) result_type r = static_cast(g() - kMin); for (size_t n = 1; n < kIters; ++n) { - r = (r << kShift) + static_cast(g() - kMin); + r = static_cast(r << kShift) + + static_cast(g() - kMin); } return r; } diff --git a/absl/random/internal/nonsecure_base.h b/absl/random/internal/nonsecure_base.h index c7d7fa4b..c3b80335 100644 --- a/absl/random/internal/nonsecure_base.h +++ b/absl/random/internal/nonsecure_base.h @@ -44,7 +44,7 @@ class RandenPoolSeedSeq { // Generate random unsigned values directly into the buffer. template void generate_impl(ContiguousTag, Contiguous begin, Contiguous end) { - const size_t n = std::distance(begin, end); + const size_t n = static_cast(std::distance(begin, end)); auto* a = &(*begin); RandenPool::Fill( absl::MakeSpan(reinterpret_cast(a), sizeof(*a) * n)); -- cgit v1.2.3