[all-commits] [llvm/llvm-project] f4120c: [libc++] Treat negative counts in copy_n & friends...

Louis Dionne via All-commits all-commits at lists.llvm.org
Wed Jul 15 10:24:26 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f4120c4a1d0daaac81983df10a809df883b25173
      https://github.com/llvm/llvm-project/commit/f4120c4a1d0daaac81983df10a809df883b25173
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2026-07-15 (Wed, 15 Jul 2026)

  Changed paths:
    M libcxx/include/__algorithm/copy_n.h
    M libcxx/include/__algorithm/for_each_n.h
    M libcxx/include/__algorithm/generate_n.h
    M libcxx/include/__algorithm/ranges_for_each_n.h
    M libcxx/include/__bit_reference
    A libcxx/test/libcxx/algorithms/alg.nonmodifying/alg.foreach/assert.for_each_n.pass.cpp
    A libcxx/test/libcxx/algorithms/alg.nonmodifying/alg.foreach/assert.ranges.for_each_n.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_n.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.fill/ranges.fill_n.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.generate/ranges_generate_n.pass.cpp

  Log Message:
  -----------
  [libc++] Treat negative counts in copy_n & friends as no-ops (#207086)

The standard specifies copy_n, fill_n and generate_n (both std and
ranges) to be no-ops when passed a negative count. This patch fixes
libc++ to abide by that requirement, with tests.

It's worth noting that std::for_each_n makes n > 0 a precondition
instead: we add the check and tests for it.

Fixes #193613



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list