[all-commits] [llvm/llvm-project] 385cc2: [libc++] Ensure that all public C++ headers includ...

Louis Dionne via All-commits all-commits at lists.llvm.org
Wed Mar 30 12:05:48 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 385cc25a531a72c393cee44689e2c3194615bcec
      https://github.com/llvm/llvm-project/commit/385cc25a531a72c393cee44689e2c3194615bcec
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2022-03-30 (Wed, 30 Mar 2022)

  Changed paths:
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/include/algorithm
    M libcxx/include/any
    M libcxx/include/array
    M libcxx/include/atomic
    M libcxx/include/barrier
    M libcxx/include/bit
    M libcxx/include/bitset
    M libcxx/include/cassert
    M libcxx/include/ccomplex
    M libcxx/include/cctype
    M libcxx/include/cerrno
    M libcxx/include/cfenv
    M libcxx/include/cfloat
    M libcxx/include/charconv
    M libcxx/include/chrono
    M libcxx/include/cinttypes
    M libcxx/include/ciso646
    M libcxx/include/climits
    M libcxx/include/clocale
    M libcxx/include/cmath
    M libcxx/include/codecvt
    M libcxx/include/compare
    M libcxx/include/complex
    M libcxx/include/concepts
    M libcxx/include/condition_variable
    M libcxx/include/coroutine
    M libcxx/include/csetjmp
    M libcxx/include/csignal
    M libcxx/include/cstdarg
    M libcxx/include/cstdbool
    M libcxx/include/cstddef
    M libcxx/include/cstdint
    M libcxx/include/cstdio
    M libcxx/include/cstdlib
    M libcxx/include/cstring
    M libcxx/include/ctgmath
    M libcxx/include/ctime
    M libcxx/include/cuchar
    M libcxx/include/cwchar
    M libcxx/include/cwctype
    M libcxx/include/deque
    M libcxx/include/exception
    M libcxx/include/execution
    M libcxx/include/experimental/algorithm
    M libcxx/include/experimental/coroutine
    M libcxx/include/experimental/deque
    M libcxx/include/experimental/forward_list
    M libcxx/include/experimental/functional
    M libcxx/include/experimental/iterator
    M libcxx/include/experimental/list
    M libcxx/include/experimental/map
    M libcxx/include/experimental/memory_resource
    M libcxx/include/experimental/propagate_const
    M libcxx/include/experimental/regex
    M libcxx/include/experimental/set
    M libcxx/include/experimental/simd
    M libcxx/include/experimental/string
    M libcxx/include/experimental/type_traits
    M libcxx/include/experimental/unordered_map
    M libcxx/include/experimental/unordered_set
    M libcxx/include/experimental/utility
    M libcxx/include/experimental/vector
    M libcxx/include/ext/hash_map
    M libcxx/include/ext/hash_set
    M libcxx/include/filesystem
    M libcxx/include/format
    M libcxx/include/forward_list
    M libcxx/include/fstream
    M libcxx/include/functional
    M libcxx/include/future
    M libcxx/include/initializer_list
    M libcxx/include/iomanip
    M libcxx/include/ios
    M libcxx/include/iosfwd
    M libcxx/include/iostream
    M libcxx/include/istream
    M libcxx/include/iterator
    M libcxx/include/latch
    M libcxx/include/limits
    M libcxx/include/list
    M libcxx/include/locale
    M libcxx/include/map
    M libcxx/include/memory
    M libcxx/include/mutex
    M libcxx/include/new
    M libcxx/include/numbers
    M libcxx/include/numeric
    M libcxx/include/optional
    M libcxx/include/ostream
    M libcxx/include/queue
    M libcxx/include/random
    M libcxx/include/ranges
    M libcxx/include/ratio
    M libcxx/include/regex
    M libcxx/include/scoped_allocator
    M libcxx/include/semaphore
    M libcxx/include/set
    M libcxx/include/shared_mutex
    M libcxx/include/span
    M libcxx/include/sstream
    M libcxx/include/stack
    M libcxx/include/stdbool.h
    M libcxx/include/stdexcept
    M libcxx/include/streambuf
    M libcxx/include/string
    M libcxx/include/string_view
    M libcxx/include/strstream
    M libcxx/include/system_error
    M libcxx/include/thread
    M libcxx/include/tuple
    M libcxx/include/type_traits
    M libcxx/include/typeindex
    M libcxx/include/typeinfo
    M libcxx/include/unordered_map
    M libcxx/include/unordered_set
    M libcxx/include/utility
    M libcxx/include/valarray
    M libcxx/include/variant
    M libcxx/include/vector
    M libcxx/include/version
    M libcxx/test/libcxx/assertions/assertions_disabled.pass.cpp
    M libcxx/test/libcxx/assertions/customize_handler.backdeployment.pass.cpp
    M libcxx/test/libcxx/assertions/customize_handler.pass.cpp
    M libcxx/test/libcxx/assertions/debug_mode_compatibility.pass.cpp
    M libcxx/test/libcxx/assertions/default_handler.abort.pass.cpp
    M libcxx/test/libcxx/assertions/default_handler.availability.verify.cpp
    A libcxx/test/libcxx/assertions/headers_declare_assertion_handler.sh.cpp
    M libcxx/utils/CMakeLists.txt
    A libcxx/utils/generate_assertion_tests.py
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] Ensure that all public C++ headers include <__assert>

This patch changes the requirement for getting the declaration of the
assertion handler from including <__assert> to including any public
C++ header of the library. Note that C compatibility headers are
excluded because we don't implement all the C headers ourselves --
some of them are taken straight from the C library, like assert.h.

It also adds a generated test to check it. Furthermore, this new
generated test is designed in a way that will make it possible to
replace almost all the existing test-generation scripts with this
system in upcoming patches.

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




More information about the All-commits mailing list