[all-commits] [llvm/llvm-project] 127c39: [libc++] Rewrite the IWYU generation (#78295)

Louis Dionne via All-commits all-commits at lists.llvm.org
Tue Jan 16 10:45:18 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 127c390fc413f8f267b085b153e6d21f84c7886e
      https://github.com/llvm/llvm-project/commit/127c390fc413f8f267b085b153e6d21f84c7886e
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-16 (Tue, 16 Jan 2024)

  Changed paths:
    M libcxx/include/libcxx.imp
    M libcxx/utils/generate_iwyu_mapping.py
    M libcxx/utils/libcxx/header_information.py

  Log Message:
  -----------
  [libc++] Rewrite the IWYU generation (#78295)

This simplifies the IWYU generation script by treating everything as a
file, instead of dealing with directories and files separately.

This has the downside that the `libcxx.imp` file is a lot larger than it
used to be, however we now have the flexibility of mapping files under
detail directories to different public headers. For example, this allows
us to map <__fwd/subrange.h> to <ranges> but <__fwd/pair.h> to
<utility>.

This patch also adds basic validation to ensure that we never map a
header to a public header that doesn't exist. We may still be missing
some mappings or we may be mapping to incorrect headers, but we won't be
mapping to headers that downright don't exist.

Fixes #63346




More information about the All-commits mailing list