From 24b6126b0ed5c139476407fc55ec8a601c028aa5 Mon Sep 17 00:00:00 2001 From: Frank Barchard Date: Tue, 8 Sep 2026 16:37:54 -0700 Subject: [PATCH] [libyuv] Cast stride to size_t in test buffer allocation and memset In convert_argb_test.cc and planar_test.cc, cast stride to size_t in align_buffer_page_end and memset calls to eliminate GCC 15 -Wstringop-overflow warnings. Delete redundant (int) casts on sizeof in convert_argb_test.cc. R=wtc@google.com Test: cmake -B out/Release -DUNIT_TEST=ON && cmake --build out/Release Bug: none Change-Id: If9062fb066b1361c86bb73041b6b08bff4c1747c TAG=agy CONV=06856819-10a7-4815-93d3-cdcd32da7495 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/8373923 Reviewed-by: richard winterton --- unit_test/convert_argb_test.cc | 55 +++++++++++--------- unit_test/planar_test.cc | 94 +++++++++++++++++----------------- 2 files changed, 77 insertions(+), 72 deletions(-) diff --git a/unit_test/convert_argb_test.cc b/unit_test/convert_argb_test.cc index ab3427635..f62917a74 100644 --- a/unit_test/convert_argb_test.cc +++ b/unit_test/convert_argb_test.cc @@ -511,16 +511,17 @@ TESTBPTOB(NV12, 2, 2, RGB565, RGB565, 2) const int kStrideB = \ (kWidth * EPP_B + STRIDE_B - 1) / STRIDE_B * STRIDE_B; \ align_buffer_page_end(src_argb, \ - kStrideA * kHeightA * (int)sizeof(TYPE_A) + OFF); \ + (size_t)kStrideA * kHeightA * sizeof(TYPE_A) + OFF); \ align_buffer_page_end(dst_argb_c, \ - kStrideB * kHeightB * (int)sizeof(TYPE_B)); \ + (size_t)kStrideB * kHeightB * sizeof(TYPE_B)); \ align_buffer_page_end(dst_argb_opt, \ - kStrideB * kHeightB * (int)sizeof(TYPE_B)); \ + (size_t)kStrideB * kHeightB * sizeof(TYPE_B)); \ for (int i = 0; i < kStrideA * kHeightA * (int)sizeof(TYPE_A); ++i) { \ src_argb[i + OFF] = (fastrand() & 0xff); \ } \ - memset(dst_argb_c, 1, kStrideB * kHeightB); \ - memset(dst_argb_opt, 101, kStrideB * kHeightB); \ + memset(dst_argb_c, 1, (size_t)kStrideB * kHeightB * sizeof(TYPE_B)); \ + memset(dst_argb_opt, 101, \ + (size_t)kStrideB * kHeightB * sizeof(TYPE_B)); \ MaskCpuFlags(disable_cpu_flags_); \ FMT_A##To##FMT_B((TYPE_A*)(src_argb + OFF), kStrideA, (TYPE_B*)dst_argb_c, \ kStrideB, kWidth, NEG kHeight); \ @@ -550,16 +551,18 @@ TESTBPTOB(NV12, 2, 2, RGB565, RGB565, 2) const int kStrideB = \ (kWidth * EPP_B + STRIDE_B - 1) / STRIDE_B * STRIDE_B; \ align_buffer_page_end(src_argb, \ - kStrideA * kHeightA * (int)sizeof(TYPE_A)); \ + (size_t)kStrideA * kHeightA * sizeof(TYPE_A)); \ align_buffer_page_end(dst_argb_c, \ - kStrideB * kHeightB * (int)sizeof(TYPE_B)); \ + (size_t)kStrideB * kHeightB * sizeof(TYPE_B)); \ align_buffer_page_end(dst_argb_opt, \ - kStrideB * kHeightB * (int)sizeof(TYPE_B)); \ + (size_t)kStrideB * kHeightB * sizeof(TYPE_B)); \ for (int i = 0; i < kStrideA * kHeightA * (int)sizeof(TYPE_A); ++i) { \ src_argb[i] = 0xfe; \ } \ - memset(dst_argb_c, 123, kStrideB * kHeightB); \ - memset(dst_argb_opt, 123, kStrideB * kHeightB); \ + memset(dst_argb_c, 123, \ + (size_t)kStrideB * kHeightB * sizeof(TYPE_B)); \ + memset(dst_argb_opt, 123, \ + (size_t)kStrideB * kHeightB * sizeof(TYPE_B)); \ MaskCpuFlags(disable_cpu_flags_); \ FMT_A##To##FMT_B((TYPE_A*)src_argb, kStrideA, (TYPE_B*)dst_argb_c, \ kStrideB, kWidth, kHeight); \ @@ -798,14 +801,14 @@ TESTATOA(AB64, uint16_t, 4, 4, 1, AR64, uint16_t, 4, 4, 1) (kWidth * BPP_A + STRIDE_A - 1) / STRIDE_A * STRIDE_A; \ const int kStrideB = \ (kWidth * BPP_B + STRIDE_B - 1) / STRIDE_B * STRIDE_B; \ - align_buffer_page_end(src_argb, kStrideA * kHeightA + OFF); \ - align_buffer_page_end(dst_argb_c, kStrideB * kHeightB); \ - align_buffer_page_end(dst_argb_opt, kStrideB * kHeightB); \ + align_buffer_page_end(src_argb, (size_t)kStrideA * kHeightA + OFF); \ + align_buffer_page_end(dst_argb_c, (size_t)kStrideB * kHeightB); \ + align_buffer_page_end(dst_argb_opt, (size_t)kStrideB * kHeightB); \ for (int i = 0; i < kStrideA * kHeightA; ++i) { \ src_argb[i + OFF] = (fastrand() & 0xff); \ } \ - memset(dst_argb_c, 1, kStrideB * kHeightB); \ - memset(dst_argb_opt, 101, kStrideB * kHeightB); \ + memset(dst_argb_c, 1, (size_t)kStrideB * kHeightB); \ + memset(dst_argb_opt, 101, (size_t)kStrideB * kHeightB); \ MaskCpuFlags(disable_cpu_flags_); \ FMT_A##To##FMT_B##Dither(src_argb + OFF, kStrideA, dst_argb_c, kStrideB, \ NULL, kWidth, NEG kHeight); \ @@ -834,14 +837,14 @@ TESTATOA(AB64, uint16_t, 4, 4, 1, AR64, uint16_t, 4, 4, 1) (kWidth * BPP_A + STRIDE_A - 1) / STRIDE_A * STRIDE_A; \ const int kStrideB = \ (kWidth * BPP_B + STRIDE_B - 1) / STRIDE_B * STRIDE_B; \ - align_buffer_page_end(src_argb, kStrideA * kHeightA); \ - align_buffer_page_end(dst_argb_c, kStrideB * kHeightB); \ - align_buffer_page_end(dst_argb_opt, kStrideB * kHeightB); \ + align_buffer_page_end(src_argb, (size_t)kStrideA * kHeightA); \ + align_buffer_page_end(dst_argb_c, (size_t)kStrideB * kHeightB); \ + align_buffer_page_end(dst_argb_opt, (size_t)kStrideB * kHeightB); \ for (int i = 0; i < kStrideA * kHeightA; ++i) { \ src_argb[i] = (fastrand() & 0xff); \ } \ - memset(dst_argb_c, 123, kStrideB * kHeightB); \ - memset(dst_argb_opt, 123, kStrideB * kHeightB); \ + memset(dst_argb_c, 123, (size_t)kStrideB * kHeightB); \ + memset(dst_argb_opt, 123, (size_t)kStrideB * kHeightB); \ MaskCpuFlags(disable_cpu_flags_); \ FMT_A##To##FMT_B##Dither(src_argb, kStrideA, dst_argb_c, kStrideB, NULL, \ kWidth, kHeight); \ @@ -892,16 +895,18 @@ TESTATOBD(ARGB, 4, 4, 1, RGB565, 2, 2, 1) const int kStrideA = \ (kWidth * EPP_A + STRIDE_A - 1) / STRIDE_A * STRIDE_A; \ align_buffer_page_end(src_argb, \ - kStrideA * kHeightA * (int)sizeof(TYPE_A) + OFF); \ + (size_t)kStrideA * kHeightA * sizeof(TYPE_A) + OFF); \ align_buffer_page_end(dst_argb_c, \ - kStrideA * kHeightA * (int)sizeof(TYPE_A)); \ + (size_t)kStrideA * kHeightA * sizeof(TYPE_A)); \ align_buffer_page_end(dst_argb_opt, \ - kStrideA * kHeightA * (int)sizeof(TYPE_A)); \ + (size_t)kStrideA * kHeightA * sizeof(TYPE_A)); \ for (int i = 0; i < kStrideA * kHeightA * (int)sizeof(TYPE_A); ++i) { \ src_argb[i + OFF] = (fastrand() & 0xff); \ } \ - memset(dst_argb_c, 1, kStrideA * kHeightA); \ - memset(dst_argb_opt, 101, kStrideA * kHeightA); \ + memset(dst_argb_c, 1, \ + (size_t)kStrideA * kHeightA * sizeof(TYPE_A)); \ + memset(dst_argb_opt, 101, \ + (size_t)kStrideA * kHeightA * sizeof(TYPE_A)); \ MaskCpuFlags(disable_cpu_flags_); \ FMT_ATOB((TYPE_A*)(src_argb + OFF), kStrideA, (TYPE_A*)dst_argb_c, \ kStrideA, kWidth, NEG kHeight); \ diff --git a/unit_test/planar_test.cc b/unit_test/planar_test.cc index b9965a62e..3eccb8e19 100644 --- a/unit_test/planar_test.cc +++ b/unit_test/planar_test.cc @@ -171,14 +171,14 @@ static int TestAttenuateI(int width, } const int kBpp = 4; const int kStride = width * kBpp; - align_buffer_page_end(src_argb, kStride * height + off); - align_buffer_page_end(dst_argb_c, kStride * height); - align_buffer_page_end(dst_argb_opt, kStride * height); + align_buffer_page_end(src_argb, (size_t)kStride * height + off); + align_buffer_page_end(dst_argb_c, (size_t)kStride * height); + align_buffer_page_end(dst_argb_opt, (size_t)kStride * height); for (int i = 0; i < kStride * height; ++i) { src_argb[i + off] = (fastrand() & 0xff); } - memset(dst_argb_c, 0, kStride * height); - memset(dst_argb_opt, 0, kStride * height); + memset(dst_argb_c, 0, (size_t)kStride * height); + memset(dst_argb_opt, 0, (size_t)kStride * height); MaskCpuFlags(disable_cpu_flags); ARGBAttenuate(src_argb + off, kStride, dst_argb_c, kStride, width, @@ -243,16 +243,16 @@ static int TestUnattenuateI(int width, } const int kBpp = 4; const int kStride = width * kBpp; - align_buffer_page_end(src_argb, kStride * height + off); - align_buffer_page_end(dst_argb_c, kStride * height); - align_buffer_page_end(dst_argb_opt, kStride * height); + align_buffer_page_end(src_argb, (size_t)kStride * height + off); + align_buffer_page_end(dst_argb_c, (size_t)kStride * height); + align_buffer_page_end(dst_argb_opt, (size_t)kStride * height); for (int i = 0; i < kStride * height; ++i) { src_argb[i + off] = (fastrand() & 0xff); } ARGBAttenuate(src_argb + off, kStride, src_argb + off, kStride, width, height); - memset(dst_argb_c, 0, kStride * height); - memset(dst_argb_opt, 0, kStride * height); + memset(dst_argb_c, 0, (size_t)kStride * height); + memset(dst_argb_opt, 0, (size_t)kStride * height); MaskCpuFlags(disable_cpu_flags); ARGBUnattenuate(src_argb + off, kStride, dst_argb_c, kStride, width, @@ -1848,16 +1848,16 @@ static int TestMultiply(int width, } const int kBpp = 4; const int kStride = width * kBpp; - align_buffer_page_end(src_argb_a, kStride * height + off); - align_buffer_page_end(src_argb_b, kStride * height + off); - align_buffer_page_end(dst_argb_c, kStride * height); - align_buffer_page_end(dst_argb_opt, kStride * height); + align_buffer_page_end(src_argb_a, (size_t)kStride * height + off); + align_buffer_page_end(src_argb_b, (size_t)kStride * height + off); + align_buffer_page_end(dst_argb_c, (size_t)kStride * height); + align_buffer_page_end(dst_argb_opt, (size_t)kStride * height); for (int i = 0; i < kStride * height; ++i) { src_argb_a[i + off] = (fastrand() & 0xff); src_argb_b[i + off] = (fastrand() & 0xff); } - memset(dst_argb_c, 0, kStride * height); - memset(dst_argb_opt, 0, kStride * height); + memset(dst_argb_c, 0, (size_t)kStride * height); + memset(dst_argb_opt, 0, (size_t)kStride * height); MaskCpuFlags(disable_cpu_flags); ARGBMultiply(src_argb_a + off, kStride, src_argb_b + off, kStride, dst_argb_c, @@ -1922,16 +1922,16 @@ static int TestAdd(int width, } const int kBpp = 4; const int kStride = width * kBpp; - align_buffer_page_end(src_argb_a, kStride * height + off); - align_buffer_page_end(src_argb_b, kStride * height + off); - align_buffer_page_end(dst_argb_c, kStride * height); - align_buffer_page_end(dst_argb_opt, kStride * height); + align_buffer_page_end(src_argb_a, (size_t)kStride * height + off); + align_buffer_page_end(src_argb_b, (size_t)kStride * height + off); + align_buffer_page_end(dst_argb_c, (size_t)kStride * height); + align_buffer_page_end(dst_argb_opt, (size_t)kStride * height); for (int i = 0; i < kStride * height; ++i) { src_argb_a[i + off] = (fastrand() & 0xff); src_argb_b[i + off] = (fastrand() & 0xff); } - memset(dst_argb_c, 0, kStride * height); - memset(dst_argb_opt, 0, kStride * height); + memset(dst_argb_c, 0, (size_t)kStride * height); + memset(dst_argb_opt, 0, (size_t)kStride * height); MaskCpuFlags(disable_cpu_flags); ARGBAdd(src_argb_a + off, kStride, src_argb_b + off, kStride, dst_argb_c, @@ -1996,16 +1996,16 @@ static int TestSubtract(int width, } const int kBpp = 4; const int kStride = width * kBpp; - align_buffer_page_end(src_argb_a, kStride * height + off); - align_buffer_page_end(src_argb_b, kStride * height + off); - align_buffer_page_end(dst_argb_c, kStride * height); - align_buffer_page_end(dst_argb_opt, kStride * height); + align_buffer_page_end(src_argb_a, (size_t)kStride * height + off); + align_buffer_page_end(src_argb_b, (size_t)kStride * height + off); + align_buffer_page_end(dst_argb_c, (size_t)kStride * height); + align_buffer_page_end(dst_argb_opt, (size_t)kStride * height); for (int i = 0; i < kStride * height; ++i) { src_argb_a[i + off] = (fastrand() & 0xff); src_argb_b[i + off] = (fastrand() & 0xff); } - memset(dst_argb_c, 0, kStride * height); - memset(dst_argb_opt, 0, kStride * height); + memset(dst_argb_c, 0, (size_t)kStride * height); + memset(dst_argb_opt, 0, (size_t)kStride * height); MaskCpuFlags(disable_cpu_flags); ARGBSubtract(src_argb_a + off, kStride, src_argb_b + off, kStride, dst_argb_c, @@ -2070,15 +2070,15 @@ static int TestSobel(int width, } const int kBpp = 4; const int kStride = width * kBpp; - align_buffer_page_end(src_argb_a, kStride * height + off); - align_buffer_page_end(dst_argb_c, kStride * height); - align_buffer_page_end(dst_argb_opt, kStride * height); - memset(src_argb_a, 0, kStride * height + off); + align_buffer_page_end(src_argb_a, (size_t)kStride * height + off); + align_buffer_page_end(dst_argb_c, (size_t)kStride * height); + align_buffer_page_end(dst_argb_opt, (size_t)kStride * height); + memset(src_argb_a, 0, (size_t)kStride * height + off); for (int i = 0; i < kStride * height; ++i) { src_argb_a[i + off] = (fastrand() & 0xff); } - memset(dst_argb_c, 0, kStride * height); - memset(dst_argb_opt, 0, kStride * height); + memset(dst_argb_c, 0, (size_t)kStride * height); + memset(dst_argb_opt, 0, (size_t)kStride * height); MaskCpuFlags(disable_cpu_flags); ARGBSobel(src_argb_a + off, kStride, dst_argb_c, kStride, width, @@ -2216,15 +2216,15 @@ static int TestSobelXY(int width, } const int kBpp = 4; const int kStride = width * kBpp; - align_buffer_page_end(src_argb_a, kStride * height + off); - align_buffer_page_end(dst_argb_c, kStride * height); - align_buffer_page_end(dst_argb_opt, kStride * height); - memset(src_argb_a, 0, kStride * height + off); + align_buffer_page_end(src_argb_a, (size_t)kStride * height + off); + align_buffer_page_end(dst_argb_c, (size_t)kStride * height); + align_buffer_page_end(dst_argb_opt, (size_t)kStride * height); + memset(src_argb_a, 0, (size_t)kStride * height + off); for (int i = 0; i < kStride * height; ++i) { src_argb_a[i + off] = (fastrand() & 0xff); } - memset(dst_argb_c, 0, kStride * height); - memset(dst_argb_opt, 0, kStride * height); + memset(dst_argb_c, 0, (size_t)kStride * height); + memset(dst_argb_opt, 0, (size_t)kStride * height); MaskCpuFlags(disable_cpu_flags); ARGBSobelXY(src_argb_a + off, kStride, dst_argb_c, kStride, width, @@ -2289,16 +2289,16 @@ static int TestBlur(int width, } const int kBpp = 4; const int kStride = width * kBpp; - align_buffer_page_end(src_argb_a, kStride * height + off); - align_buffer_page_end(dst_cumsum, width * height * 16); - align_buffer_page_end(dst_argb_c, kStride * height); - align_buffer_page_end(dst_argb_opt, kStride * height); + align_buffer_page_end(src_argb_a, (size_t)kStride * height + off); + align_buffer_page_end(dst_cumsum, (size_t)width * height * 16); + align_buffer_page_end(dst_argb_c, (size_t)kStride * height); + align_buffer_page_end(dst_argb_opt, (size_t)kStride * height); for (int i = 0; i < kStride * height; ++i) { src_argb_a[i + off] = (fastrand() & 0xff); } - memset(dst_cumsum, 0, width * height * 16); - memset(dst_argb_c, 0, kStride * height); - memset(dst_argb_opt, 0, kStride * height); + memset(dst_cumsum, 0, (size_t)width * height * 16); + memset(dst_argb_c, 0, (size_t)kStride * height); + memset(dst_argb_opt, 0, (size_t)kStride * height); MaskCpuFlags(disable_cpu_flags); ARGBBlur(src_argb_a + off, kStride, dst_argb_c, kStride,