[all-commits] [llvm/llvm-project] d6e714: [libc++] Rewrite the transitive header checking ma...

Louis Dionne via All-commits all-commits at lists.llvm.org
Tue Oct 22 06:19:19 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d6e714b10e102eb32e64e04bf177226dbe16d0e7
      https://github.com/llvm/llvm-project/commit/d6e714b10e102eb32e64e04bf177226dbe16d0e7
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-10-22 (Tue, 22 Oct 2024)

  Changed paths:
    M libcxx/test/libcxx/header_inclusions.gen.py
    M libcxx/test/libcxx/headers_in_modulemap.sh.py
    M libcxx/test/libcxx/transitive_includes.gen.py
    A libcxx/test/libcxx/transitive_includes/to_csv.py
    R libcxx/test/libcxx/transitive_includes_to_csv.py
    M libcxx/utils/generate_iwyu_mapping.py
    M libcxx/utils/generate_libcxx_cppm_in.py
    M libcxx/utils/libcxx/header_information.py

  Log Message:
  -----------
  [libc++] Rewrite the transitive header checking machinery (#110554)

Since we don't generate a full dependency graph of headers, we can
greatly simplify the script that parses the result of --trace-includes.

At the same time, we also unify the mechanism for detecting whether a
header is a public/C compat/internal/etc header with the existing
mechanism in header_information.py.

As a drive-by this fixes the headers_in_modulemap.sh.py test which had
been disabled by mistake because it used its own way of determining
the list of libc++ headers. By consistently using header_information.py
to get that information, problems like this shouldn't happen anymore.

This should also unblock #110303, which was blocked because of
a brittle implementation of the transitive includes check which broke
when the repository was cloned at a path like /path/__something/more.



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