Fields

hardware None
os None

Parameters

Fields

NameValue

Parameters

NameValue
git_commit commit a5b3d3a03f3291b1b62c7c25bc40b494660421cb
Author: Peng Liu <winner245@hotmail.com>
Date: Wed Mar 19 11:55:51 2025 -0400

[libc++] Fix {std, ranges}::copy for vector<bool> with small storage types (#131545)

The current implementation of `{std, ranges}::copy` fails to copy
`vector<bool>` correctly when the underlying storage type
(`__storage_type`) is smaller than `int`, such as `unsigned char`,
`unsigned short`, `uint8_t` and `uint16_t`. The root cause is that the
unsigned small storage type undergoes integer promotion to (signed)
`int`, which is then left and right shifted, leading to UB (before
C++20) and sign-bit extension (since C++20) respectively. As a result,
the underlying bit mask evaluations become incorrect, causing erroneous
copying behavior.

This patch resolves the issue by correcting the internal bitwise
operations, ensuring that `{std, ranges}::copy` operates correctly for
`vector<bool>` with any custom (unsigned) storage types.

Fixes #131692.
Filter

ldionne-old-macbook-results test results

Run Order Start Time Duration
Current 531223 2025-12-16T16:40:01 0:00:00
Previous 531121 2025-12-16T16:40:01 0:00:00
Baseline 485288 2025-12-16T16:40:01 0:00:00


Tests Summary

Status Group # # (B)
Performance Regressions 1 0
Performance Improvements 1 0
Added Tests 0 18
Unchanged Tests 88 72
Total Tests 90

Performance Regressions - execution_time Δ Previous Current σ Δ (B) σ (B)
727_cppcheck_r 1.44% 24.679 25.033 - 0.00% -

Performance Improvements - execution_time Δ Previous Current σ Δ (B) σ (B)
707_ntest_r -2.20% 18.282 17.879 - 0.00% -

Added Tests - execution_time
706_stockfish_r
707_ntest_r
709_cactus_r
710_omnetpp_r
721_gcc_r
723_llvm_r
727_cppcheck_r
729_abc_r
731_astcenc_r
734_vpr_r
735_gem5_r
736_ocio_r
737_gmsh_r
748_flightdm_r
750_sealcrypto_r
753_ns3_r
766_femflow_r
767_nest_r


Report Time: 0.29s