[all-commits] [llvm/llvm-project] 23d6cd: [libc++] Add a test to pin down the set of transit...

Louis Dionne via All-commits all-commits at lists.llvm.org
Thu Jun 23 13:24:14 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 23d6cde14de352e05c66ae34cd237e3a7a8955d1
      https://github.com/llvm/llvm-project/commit/23d6cde14de352e05c66ae34cd237e3a7a8955d1
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2022-06-23 (Thu, 23 Jun 2022)

  Changed paths:
    M libcxx/include/__debug
    M libcxx/include/locale
    R libcxx/test/libcxx/lint/lit.local.cfg
    A libcxx/test/libcxx/lit.local.cfg
    M libcxx/test/libcxx/selftest/dsl/lit.local.cfg
    A libcxx/test/libcxx/transitive_includes.sanitize.py
    A libcxx/test/libcxx/transitive_includes.sh.cpp
    A libcxx/test/libcxx/transitive_includes/expected.algorithm
    A libcxx/test/libcxx/transitive_includes/expected.any
    A libcxx/test/libcxx/transitive_includes/expected.array
    A libcxx/test/libcxx/transitive_includes/expected.atomic
    A libcxx/test/libcxx/transitive_includes/expected.barrier
    A libcxx/test/libcxx/transitive_includes/expected.bit
    A libcxx/test/libcxx/transitive_includes/expected.bitset
    A libcxx/test/libcxx/transitive_includes/expected.cassert
    A libcxx/test/libcxx/transitive_includes/expected.ccomplex
    A libcxx/test/libcxx/transitive_includes/expected.cctype
    A libcxx/test/libcxx/transitive_includes/expected.cerrno
    A libcxx/test/libcxx/transitive_includes/expected.cfenv
    A libcxx/test/libcxx/transitive_includes/expected.cfloat
    A libcxx/test/libcxx/transitive_includes/expected.charconv
    A libcxx/test/libcxx/transitive_includes/expected.chrono
    A libcxx/test/libcxx/transitive_includes/expected.cinttypes
    A libcxx/test/libcxx/transitive_includes/expected.ciso646
    A libcxx/test/libcxx/transitive_includes/expected.climits
    A libcxx/test/libcxx/transitive_includes/expected.clocale
    A libcxx/test/libcxx/transitive_includes/expected.cmath
    A libcxx/test/libcxx/transitive_includes/expected.codecvt
    A libcxx/test/libcxx/transitive_includes/expected.compare
    A libcxx/test/libcxx/transitive_includes/expected.complex
    A libcxx/test/libcxx/transitive_includes/expected.concepts
    A libcxx/test/libcxx/transitive_includes/expected.condition_variable
    A libcxx/test/libcxx/transitive_includes/expected.coroutine
    A libcxx/test/libcxx/transitive_includes/expected.csetjmp
    A libcxx/test/libcxx/transitive_includes/expected.csignal
    A libcxx/test/libcxx/transitive_includes/expected.cstdarg
    A libcxx/test/libcxx/transitive_includes/expected.cstdbool
    A libcxx/test/libcxx/transitive_includes/expected.cstddef
    A libcxx/test/libcxx/transitive_includes/expected.cstdint
    A libcxx/test/libcxx/transitive_includes/expected.cstdio
    A libcxx/test/libcxx/transitive_includes/expected.cstdlib
    A libcxx/test/libcxx/transitive_includes/expected.cstring
    A libcxx/test/libcxx/transitive_includes/expected.ctgmath
    A libcxx/test/libcxx/transitive_includes/expected.ctime
    A libcxx/test/libcxx/transitive_includes/expected.cuchar
    A libcxx/test/libcxx/transitive_includes/expected.cwchar
    A libcxx/test/libcxx/transitive_includes/expected.cwctype
    A libcxx/test/libcxx/transitive_includes/expected.deque
    A libcxx/test/libcxx/transitive_includes/expected.exception
    A libcxx/test/libcxx/transitive_includes/expected.execution
    A libcxx/test/libcxx/transitive_includes/expected.experimental_algorithm
    A libcxx/test/libcxx/transitive_includes/expected.experimental_coroutine
    A libcxx/test/libcxx/transitive_includes/expected.experimental_deque
    A libcxx/test/libcxx/transitive_includes/expected.experimental_forward_list
    A libcxx/test/libcxx/transitive_includes/expected.experimental_functional
    A libcxx/test/libcxx/transitive_includes/expected.experimental_iterator
    A libcxx/test/libcxx/transitive_includes/expected.experimental_list
    A libcxx/test/libcxx/transitive_includes/expected.experimental_map
    A libcxx/test/libcxx/transitive_includes/expected.experimental_memory_resource
    A libcxx/test/libcxx/transitive_includes/expected.experimental_propagate_const
    A libcxx/test/libcxx/transitive_includes/expected.experimental_regex
    A libcxx/test/libcxx/transitive_includes/expected.experimental_set
    A libcxx/test/libcxx/transitive_includes/expected.experimental_simd
    A libcxx/test/libcxx/transitive_includes/expected.experimental_string
    A libcxx/test/libcxx/transitive_includes/expected.experimental_type_traits
    A libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_map
    A libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_set
    A libcxx/test/libcxx/transitive_includes/expected.experimental_utility
    A libcxx/test/libcxx/transitive_includes/expected.experimental_vector
    A libcxx/test/libcxx/transitive_includes/expected.ext_hash_map
    A libcxx/test/libcxx/transitive_includes/expected.ext_hash_set
    A libcxx/test/libcxx/transitive_includes/expected.filesystem
    A libcxx/test/libcxx/transitive_includes/expected.format
    A libcxx/test/libcxx/transitive_includes/expected.forward_list
    A libcxx/test/libcxx/transitive_includes/expected.fstream
    A libcxx/test/libcxx/transitive_includes/expected.functional
    A libcxx/test/libcxx/transitive_includes/expected.future
    A libcxx/test/libcxx/transitive_includes/expected.initializer_list
    A libcxx/test/libcxx/transitive_includes/expected.iomanip
    A libcxx/test/libcxx/transitive_includes/expected.ios
    A libcxx/test/libcxx/transitive_includes/expected.iosfwd
    A libcxx/test/libcxx/transitive_includes/expected.iostream
    A libcxx/test/libcxx/transitive_includes/expected.istream
    A libcxx/test/libcxx/transitive_includes/expected.iterator
    A libcxx/test/libcxx/transitive_includes/expected.latch
    A libcxx/test/libcxx/transitive_includes/expected.limits
    A libcxx/test/libcxx/transitive_includes/expected.list
    A libcxx/test/libcxx/transitive_includes/expected.locale
    A libcxx/test/libcxx/transitive_includes/expected.map
    A libcxx/test/libcxx/transitive_includes/expected.memory
    A libcxx/test/libcxx/transitive_includes/expected.mutex
    A libcxx/test/libcxx/transitive_includes/expected.new
    A libcxx/test/libcxx/transitive_includes/expected.numbers
    A libcxx/test/libcxx/transitive_includes/expected.numeric
    A libcxx/test/libcxx/transitive_includes/expected.optional
    A libcxx/test/libcxx/transitive_includes/expected.ostream
    A libcxx/test/libcxx/transitive_includes/expected.queue
    A libcxx/test/libcxx/transitive_includes/expected.random
    A libcxx/test/libcxx/transitive_includes/expected.ranges
    A libcxx/test/libcxx/transitive_includes/expected.ratio
    A libcxx/test/libcxx/transitive_includes/expected.regex
    A libcxx/test/libcxx/transitive_includes/expected.scoped_allocator
    A libcxx/test/libcxx/transitive_includes/expected.semaphore
    A libcxx/test/libcxx/transitive_includes/expected.set
    A libcxx/test/libcxx/transitive_includes/expected.shared_mutex
    A libcxx/test/libcxx/transitive_includes/expected.span
    A libcxx/test/libcxx/transitive_includes/expected.sstream
    A libcxx/test/libcxx/transitive_includes/expected.stack
    A libcxx/test/libcxx/transitive_includes/expected.stdexcept
    A libcxx/test/libcxx/transitive_includes/expected.streambuf
    A libcxx/test/libcxx/transitive_includes/expected.string
    A libcxx/test/libcxx/transitive_includes/expected.string_view
    A libcxx/test/libcxx/transitive_includes/expected.strstream
    A libcxx/test/libcxx/transitive_includes/expected.system_error
    A libcxx/test/libcxx/transitive_includes/expected.thread
    A libcxx/test/libcxx/transitive_includes/expected.tuple
    A libcxx/test/libcxx/transitive_includes/expected.type_traits
    A libcxx/test/libcxx/transitive_includes/expected.typeindex
    A libcxx/test/libcxx/transitive_includes/expected.typeinfo
    A libcxx/test/libcxx/transitive_includes/expected.unordered_map
    A libcxx/test/libcxx/transitive_includes/expected.unordered_set
    A libcxx/test/libcxx/transitive_includes/expected.utility
    A libcxx/test/libcxx/transitive_includes/expected.valarray
    A libcxx/test/libcxx/transitive_includes/expected.variant
    A libcxx/test/libcxx/transitive_includes/expected.vector
    A libcxx/test/libcxx/transitive_includes/expected.version
    M libcxx/utils/generate_header_tests.py

  Log Message:
  -----------
  [libc++] Add a test to pin down the set of transitive public includes

A situation that happens fairly often in libc++ is that we remove some
transitive includes in a header (either purposefully or not) and that
ends up breaking users. Of course, we want to be able to remove our
transitive includes, however it's also good to have a grip on that
to know which commit changed what and when. Furthermore, it's good
to accumulate include removals for a couple of releases to avoid
breaking users at every release for this reason.

This commit adds a test that should break whenever we remove an
include. Hence, it should allow us to track which headers include
which other headers transitively, giving us a traceable way to
remove headers.

Differential Revision: https://reviews.llvm.org/D128236




More information about the All-commits mailing list