[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 <rrwinterton@gmail.com>
This commit is contained in:
Frank Barchard 2026-09-08 16:37:54 -07:00
parent af1aaca840
commit 24b6126b0e
2 changed files with 77 additions and 72 deletions

View File

@ -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); \

View File

@ -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,