From 2be9d85874f34bab6270c640e580f44e2b786531 Mon Sep 17 00:00:00 2001 From: Enrico Seiler Date: Thu, 6 Jun 2024 19:47:08 +0200 Subject: [PATCH] [MISC] Update IWYU mappings --- .github/workflows/ci_iwyu.yml | 2 +- test/iwyu/CMakeLists.txt | 1 + test/iwyu/mappings/gcc.stl.headers.imp | 63 ++++++++++++++++++-------- test/iwyu/mappings/iwyu.imp | 3 +- test/iwyu/mappings/libcxx.imp | 44 ++++++++++-------- test/iwyu/mappings/stl.public.imp | 13 +++++- 6 files changed, 82 insertions(+), 44 deletions(-) diff --git a/.github/workflows/ci_iwyu.yml b/.github/workflows/ci_iwyu.yml index af71be97..89defecd 100644 --- a/.github/workflows/ci_iwyu.yml +++ b/.github/workflows/ci_iwyu.yml @@ -53,7 +53,7 @@ jobs: - name: Configure Test run: | mkdir build && cd build - cmake ../hibf/test/iwyu -DCMAKE_BUILD_TYPE=Release + cmake ../hibf/test/iwyu -DCMAKE_BUILD_TYPE=Debug - name: Run Test working-directory: build diff --git a/test/iwyu/CMakeLists.txt b/test/iwyu/CMakeLists.txt index ec4952d0..3fea3cfb 100644 --- a/test/iwyu/CMakeLists.txt +++ b/test/iwyu/CMakeLists.txt @@ -28,6 +28,7 @@ list (APPEND CMAKE_CXX_INCLUDE_WHAT_YOU_USE "-Xiwyu;--keep=**hibf/platform.hpp") list (APPEND CMAKE_CXX_INCLUDE_WHAT_YOU_USE "-Xiwyu;--keep=**hibf/version.hpp") list (APPEND CMAKE_CXX_INCLUDE_WHAT_YOU_USE "-Xiwyu;--no_default_mappings") list (APPEND CMAKE_CXX_INCLUDE_WHAT_YOU_USE "-Xiwyu;--mapping_file=${CMAKE_CURRENT_LIST_DIR}/mappings/iwyu.imp") +list (APPEND CMAKE_CXX_INCLUDE_WHAT_YOU_USE "--stdlib=libc++") option (INSTALL_HIBF "" OFF) add_subdirectory (../unit/ unit) diff --git a/test/iwyu/mappings/gcc.stl.headers.imp b/test/iwyu/mappings/gcc.stl.headers.imp index 01c46af0..29d33027 100644 --- a/test/iwyu/mappings/gcc.stl.headers.imp +++ b/test/iwyu/mappings/gcc.stl.headers.imp @@ -7,26 +7,32 @@ # Note: make sure to sync this setting with iwyu_include_picker.cc # Headers explicitly annotated with `@headername` - # ( cd /usr/include/c++/10 && grep -r headername | perl -nle 'm/^([^:]+).*@headername\{([^,]*)\}/ && print qq@ { include: ["<$1>", private, "<$2>", public ] },@' | sort -u ) + # ( cd /usr/include/c++/14 && grep -r headername | perl -nle 'm/^([^:]+).*@headername\{([^,]*)\}/ && print qq@ { include: ["<$1>", private, "<$2>", public ] },@' | sort -u ) { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, @@ -41,11 +47,10 @@ { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, @@ -55,16 +60,22 @@ { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, @@ -73,11 +84,15 @@ { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, @@ -86,28 +101,30 @@ { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, @@ -122,22 +139,29 @@ { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, @@ -151,8 +175,8 @@ { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, + { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, @@ -173,10 +197,9 @@ { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - # ( cd /usr/include/x86_64-linux-gnu/c++/10 && grep -r headername | perl -nle 'm/^([^:]+).*@headername\{([^,]*)\}/ && print qq@ { include: ["<$1>", private, "<$2>", public ] },@' | sort -u ) + # ( cd /usr/include/x86_64-linux-gnu/c++/14 && grep -r headername | perl -nle 'm/^([^:]+).*@headername\{([^,]*)\}/ && print qq@ { include: ["<$1>", private, "<$2>", public ] },@' | sort -u ) { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, - { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, { include: ["", private, "", public ] }, diff --git a/test/iwyu/mappings/iwyu.imp b/test/iwyu/mappings/iwyu.imp index afdd41ce..181931a9 100644 --- a/test/iwyu/mappings/iwyu.imp +++ b/test/iwyu/mappings/iwyu.imp @@ -19,6 +19,5 @@ { symbol: [ "std::filesystem", private, "", public ] }, # Manual { symbol: [ "_LIBCPP_VERSION", private, "", public ] }, - { symbol: [ "__sanitizer_annotate_contiguous_container", private, "", public ] }, - { symbol: [ "_LIBCPP_HAS_NO_ASAN", private, "", public ] }, + { symbol: [ "_LIBCPP_HAS_NO_ASAN", private, "", public ] }, ] diff --git a/test/iwyu/mappings/libcxx.imp b/test/iwyu/mappings/libcxx.imp index 448931d0..4844eb14 100644 --- a/test/iwyu/mappings/libcxx.imp +++ b/test/iwyu/mappings/libcxx.imp @@ -8,21 +8,21 @@ # cd __fwd ; find -type f | sort | sed -e "s#./\(.*\)\(.h\)# { include: [\"@<__fwd/\1\2>\", private, \"<\1>\", public ] },#" [ # from llvm-XX/include/c++/v1/libcxx.imp - { include: [ "<__hash_table>", "private", "", "public" ] }, - { include: [ "<__hash_table>", "private", "", "public" ] }, - { include: [ "<__locale>", "private", "", "public" ] }, - { include: [ "<__node_handle>", "private", "", "public" ] }, - { include: [ "<__node_handle>", "private", "", "public" ] }, - { include: [ "<__node_handle>", "private", "", "public" ] }, - { include: [ "<__node_handle>", "private", "", "public" ] }, - { include: [ "<__split_buffer>", "private", "", "public" ] }, - { include: [ "<__split_buffer>", "private", "", "public" ] }, - { include: [ "<__threading_support>", "private", "", "public" ] }, - { include: [ "<__threading_support>", "private", "", "public" ] }, - { include: [ "<__threading_support>", "private", "", "public" ] }, - { include: [ "<__threading_support>", "private", "", "public" ] }, - { include: [ "<__tree>", "private", "", "public" ] }, - { include: [ "<__tree>", "private", "", "public" ] }, + { include: ["<__hash_table>", private, "", public ] }, + { include: ["<__hash_table>", private, "", public ] }, + { include: ["<__locale>", private, "", public ] }, + { include: ["<__node_handle>", private, "", public ] }, + { include: ["<__node_handle>", private, "", public ] }, + { include: ["<__node_handle>", private, "", public ] }, + { include: ["<__node_handle>", private, "", public ] }, + { include: ["<__split_buffer>", private, "", public ] }, + { include: ["<__split_buffer>", private, "", public ] }, + { include: ["<__threading_support>", private, "", public ] }, + { include: ["<__threading_support>", private, "", public ] }, + { include: ["<__threading_support>", private, "", public ] }, + { include: ["<__threading_support>", private, "", public ] }, + { include: ["<__tree>", private, "", public ] }, + { include: ["<__tree>", private, "", public ] }, # cd llvm-project/libcxx/include ; # find -type d -name "__*" -and -not -name "__debug_utils*" -and -not -name "__fwd*" -and -not -name "__pstl*" -and -not -name "__support*" | sort | sed -e "s#./__\(.*\)# { include: [\"@<__\1/.*>\", private, \"<\1>\", public ] },#" { include: ["@<__algorithm/.*>", private, "", public ] }, @@ -41,7 +41,8 @@ { include: ["@<__functional/.*>", private, "", public ] }, { include: ["@<__ios/.*>", private, "", public ] }, { include: ["@<__iterator/.*>", private, "", public ] }, - { include: ["@<__locale_dir/.*>", private, "", public ] }, + { include: ["@<__locale_dir/.*>", private, "", public ] }, + { include: ["@<__math/.*>", private, "", public ] }, { include: ["@<__mdspan/.*>", private, "", public ] }, { include: ["@<__memory/.*>", private, "", public ] }, { include: ["@<__memory_resource/.*>", private, "", public ] }, @@ -61,15 +62,20 @@ # find -type f | sort | sed -e "s#./\(.*\)\(.h\)# { include: [\"@<__fwd/\1\2>\", private, \"<\1>\", public ] },#" # Manual adjustment { include: ["@<__fwd/array.h>", private, "", public ] }, - { include: ["@<__fwd/fstream.h>", private, "", public ] }, - #{ include: ["@<__fwd/get.h>", private, "", public ] }, + { include: ["<__fwd/bit_reference.h>", private, "", public ] }, + { include: ["<__fwd/bit_reference.h>", private, "", public ] }, + { include: ["@<__fwd/fstream.h>", private, "", public ] }, + { include: ["@<__fwd/get.h>", private, "", public ] }, + { include: ["@<__fwd/get.h>", private, "", public ] }, + { include: ["@<__fwd/get.h>", private, "", public ] }, + { include: ["@<__fwd/get.h>", private, "", public ] }, { include: ["@<__fwd/hash.h>", private, "", public ] }, { include: ["@<__fwd/ios.h>", private, "", public ] }, { include: ["@<__fwd/istream.h>", private, "", public ] }, { include: ["@<__fwd/mdspan.h>", private, "", public ] }, { include: ["@<__fwd/memory_resource.h>", private, "", public ] }, { include: ["@<__fwd/ostream.h>", private, "", public ] }, - { include: ["@<__fwd/pair.h>", private, "", public ] }, + { include: ["@<__fwd/pair.h>", private, "", public ] }, { include: ["@<__fwd/span.h>", private, "", public ] }, { include: ["@<__fwd/sstream.h>", private, "", public ] }, { include: ["@<__fwd/streambuf.h>", private, "", public ] }, diff --git a/test/iwyu/mappings/stl.public.imp b/test/iwyu/mappings/stl.public.imp index 16ca72da..5c8ef399 100644 --- a/test/iwyu/mappings/stl.public.imp +++ b/test/iwyu/mappings/stl.public.imp @@ -13,16 +13,25 @@ # are pretty forgiving: if a user specifies any public header, we # generally don't require the others. # ( cd /usr/crosstool/v12/gcc-4.3.1-glibc-2.3.6-grte/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/include/c++/4.3.1 && egrep '^ *# *include <(istream|ostream|iostream|fstream|sstream|streambuf|ios|iosfwd)>' *stream* ios | perl -nle 'm/^([^:]+).*[<"]([^>"]+)[>"]/ and print qq@ { include: ["<$2>", public, "<$1>", public ] },@' | sort -u ) - { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, { include: ["", public, "", public ] }, - { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, + { include: ["", public, "", public ] }, ]