Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add mapping generator for libstdc++ #1606

Merged
merged 3 commits into from
Sep 29, 2024

Conversation

kimgr
Copy link
Contributor

@kimgr kimgr commented Aug 30, 2024

If this seems to work out, the procedure for updating mappings should be:

# python3 ./mapgen/iwyu-mapgen-libstdcxx.py /usr/include/c++/11/ /usr/include/x86_64-linux-gnu/c++/11/ --lang=imp > libstdcxx.imp
# python3 ./mapgen/iwyu-mapgen-libstdcxx.py /usr/include/c++/11/ /usr/include/x86_64-linux-gnu/c++/11/ --lang=c++ > libstdcxx.cc

followed by some cutting and pasting to get the right lines into the right place (this can obviously be improved over time).

Poor mappings can now be improved in the python code instead of manually in the mapping tables, which makes tracking much easier.

And above all, users running a very new or very old GCC can simply regenerate their mappings in situ and use a generated .imp table or patch their IWYU source and rebuild with matching builtin mappings.

@firewave @alejandro-colomar @correaa Let me know what you think.

@kimgr
Copy link
Contributor Author

kimgr commented Aug 30, 2024

also cc @justanotheranonymoususer if you're interested in an example of generated mappings

Copy link

Informational: IWYU dogfood results

include-what-you-use (exit: 0)
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_ast_util.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_cache.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_driver.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_getopt.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_globals.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_include_picker.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_lexer_utils.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_location_util.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_output.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_path_util.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.cc

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_version.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.cc has correct #includes/fwd-decls)

In file included from /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc:10:
In file included from /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.h:54:
In file included from /usr/lib/llvm-20/include/clang/Basic/FileEntry.h:17:
In file included from /usr/lib/llvm-20/include/clang/Basic/CustomizableOptional.h:12:
In file included from /usr/lib/llvm-20/include/llvm/ADT/Hashing.h:52:
In file included from /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/algorithm:61:
In file included from /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_algo.h:61:
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_tempbuf.h:263:8: warning: 'get_temporary_buffer<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>' is deprecated [-Wdeprecated-declarations]
  263 |                 std::get_temporary_buffer<value_type>(_M_original_len));
      |                      ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_algo.h:4996:15: note: in instantiation of member function 'std::_Temporary_buffer<__gnu_cxx::__normal_iterator<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>> *, std::vector<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>>, std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>::_Temporary_buffer' requested here
 4996 |       _TmpBuf __buf(__first, (__last - __first + 1) / 2);
      |               ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_algo.h:5070:23: note: in instantiation of function template specialization 'std::__stable_sort<__gnu_cxx::__normal_iterator<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>> *, std::vector<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc:1341:54)>>' requested here
 5070 |       _GLIBCXX_STD_A::__stable_sort(__first, __last,
      |                       ^
/home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc:1341:8: note: in instantiation of function template specialization 'std::stable_sort<__gnu_cxx::__normal_iterator<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>> *, std::vector<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>>, (lambda at /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc:1341:54)>' requested here
 1341 |   std::stable_sort(mappings.begin(), mappings.end(), [](auto& lhs, auto& rhs) {
      |        ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_tempbuf.h:99:5: note: 'get_temporary_buffer<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>' has been explicitly marked deprecated here
   99 |     _GLIBCXX17_DEPRECATED
      |     ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/x86_64-linux-gnu/c++/12/bits/c++config.h:119:34: note: expanded from macro '_GLIBCXX17_DEPRECATED'
  119 | # define _GLIBCXX17_DEPRECATED [[__deprecated__]]
      |                                  ^

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.cc has correct #includes/fwd-decls)

# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_port.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_preprocessor.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_regex.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="3b9341e" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_verrs.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.cc

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.cc has correct #includes/fwd-decls)

/home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.cc:384:49: warning: @headername directive missing a closing brace

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.cc has correct #includes/fwd-decls)
fix_includes.py (exit: 0)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_version.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.cc: iwyu reports no contentful changes)
IWYU edited 0 files on your behalf.
diff

@alejandro-colomar
Copy link
Contributor

I don't know python enough for reviewing this. The changes to the mappings seem reasonable.

@correaa
Copy link
Contributor

correaa commented Aug 30, 2024

I don't know python either, but more fundamental I don't understand how the library detects automatically the mappings from the lib std++ code alone.

What is the advantage of maintaining the python script vs the mappings themselves?
(avoid redundancy for different versions?)

@kimgr
Copy link
Contributor Author

kimgr commented Aug 30, 2024

more fundamental I don't understand how the library detects automatically the mappings from the lib std++ code alone.

It's possible to see some patterns in the library code, which lets you tell the difference between public and private headers (this is described in detail in the script doc comments).

Armed with that knowledge, you can say that an include from a public header to a private header implies a mapping from public to private. There are exceptions and special cases, and they are also encoded in the script.

What is the advantage of maintaining the python script vs the mappings themselves?
(avoid redundancy for different versions?)

See PR description, but yes, pretty much. The mappings were originally generated by shell pipelines for GCC 4.6, then manually edited, then manually patched as issues were found. At this point the set of mappings on master is basically unmaintainable when faced with a new GCC version.

@correaa
Copy link
Contributor

correaa commented Sep 2, 2024

It's possible to see some patterns in the library code, which lets you tell the difference between public and private headers (this is described in detail in the script doc comments).

Armed with that knowledge, you can say that an include from a public header to a private header implies a mapping from public to private. There are exceptions and special cases, and they are also encoded in the script.

Interesting, are those patterns general or only applicable to libstdc++?
In the unlikely case that they are general, they could be applied to any library and be part of the iwyu main program heuristics.
I suspect it is not that it may not be that simple.

Also, I found that concrete mappings for libstd++ (GNU) and libc++ (LLVM) are very different, for that matter.

What is the advantage of maintaining the python script vs the mappings themselves?
(avoid redundancy for different versions?)

See PR description, but yes, pretty much. The mappings were originally generated by shell pipelines for GCC 4.6, then manually edited, then manually patched as issues were found. At this point the set of mappings on master is basically unmaintainable when faced with a new GCC version.

I see.
Can each major version of GCC have its own mapping? GCC is somewhat unique and should be active by default, and as much careful work as needed should be put in each of the standard library major versions.

Also, would this cover the cases for libc++?

@kimgr
Copy link
Contributor Author

kimgr commented Sep 2, 2024

Interesting, are those patterns general or only applicable to libstdc++?
In the unlikely case that they are general, they could be applied to any library and be part of the iwyu main program heuristics.
I suspect it is not that it may not be that simple.

No, those exact patterns are only relevant for libstdc++. Other libraries have other patterns, as encoded in the other mapgen scripts.

Also, I found that concrete mappings for libstd++ (GNU) and libc++ (LLVM) are very different, for that matter.

Yeah, libc++ is a different library with different conventions.

Can each major version of GCC have its own mapping?

I was just thinking about that the other day. Assuming the patterns hold across GCC versions, it should be possible to install and generate mappings for every major GCC version, then keep version-keyed maps in include_picker.cc, and dynamically select mapping depending on which GCC/libstdc++ version is found on startup. All interesting followup work.

@firewave
Copy link
Contributor

firewave commented Sep 9, 2024

The build failure looks like this: llvm/llvm-project#99819

@kimgr
Copy link
Contributor Author

kimgr commented Sep 9, 2024

@firewave Thanks, yeah, I started trying to work around it, but there were many different files missing. It would be nice if CMake could be convinced to ignore missing files (or convert the error to a warning); very few of these errors are actually relevant to us.

@kimgr kimgr marked this pull request as ready for review September 9, 2024 17:47
@firewave
Copy link
Contributor

firewave commented Sep 9, 2024

@firewave Thanks, yeah, I started trying to work around it, but there were many different files missing. It would be nice if CMake could be convinced to ignore missing files (or convert the error to a warning); very few of these errors are actually relevant to us.

There is unfortunately a lack of documentation for the CMake integration. But I had a quick look at the file and it doesn't seem like any of this might be configurable. It also references CMake 2.8 so it seems like this stuff hasn't been touched in ages.

This replaces the built-in libstdc++ mappings with a machine-generated
set. Since debug headers are also part of the generated corpus, remove
the special debug header mapping table.

Replace gcc.stl.headers.imp with generated mappings, and remove the
now-obsolete gcc.stl.debug.imp.
Mostly to have the built-in mapping generator procedure and tradeoffs
documented.
Copy link

Informational: IWYU dogfood results

include-what-you-use (exit: 0)
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_ast_util.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_cache.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_driver.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_getopt.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_globals.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_include_picker.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_lexer_utils.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_location_util.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_output.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_path_util.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.cc

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_version.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.cc has correct #includes/fwd-decls)

In file included from /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc:10:
In file included from /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.h:54:
In file included from /usr/lib/llvm-20/include/clang/Basic/FileEntry.h:17:
In file included from /usr/lib/llvm-20/include/clang/Basic/CustomizableOptional.h:12:
In file included from /usr/lib/llvm-20/include/llvm/ADT/Hashing.h:52:
In file included from /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/algorithm:61:
In file included from /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_algo.h:61:
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_tempbuf.h:263:8: warning: 'get_temporary_buffer<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>' is deprecated [-Wdeprecated-declarations]
  263 |                 std::get_temporary_buffer<value_type>(_M_original_len));
      |                      ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_algo.h:4996:15: note: in instantiation of member function 'std::_Temporary_buffer<__gnu_cxx::__normal_iterator<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>> *, std::vector<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>>, std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>::_Temporary_buffer' requested here
 4996 |       _TmpBuf __buf(__first, (__last - __first + 1) / 2);
      |               ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_algo.h:5070:23: note: in instantiation of function template specialization 'std::__stable_sort<__gnu_cxx::__normal_iterator<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>> *, std::vector<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>>, __gnu_cxx::__ops::_Iter_comp_iter<(lambda at /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc:1352:54)>>' requested here
 5070 |       _GLIBCXX_STD_A::__stable_sort(__first, __last,
      |                       ^
/home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc:1352:8: note: in instantiation of function template specialization 'std::stable_sort<__gnu_cxx::__normal_iterator<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>> *, std::vector<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>>, (lambda at /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc:1352:54)>' requested here
 1352 |   std::stable_sort(mappings.begin(), mappings.end(), [](auto& lhs, auto& rhs) {
      |        ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_tempbuf.h:99:5: note: 'get_temporary_buffer<std::pair<std::basic_string<char>, std::vector<include_what_you_use::MappedInclude>>>' has been explicitly marked deprecated here
   99 |     _GLIBCXX17_DEPRECATED
      |     ^
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/x86_64-linux-gnu/c++/12/bits/c++config.h:119:34: note: expanded from macro '_GLIBCXX17_DEPRECATED'
  119 | # define _GLIBCXX17_DEPRECATED [[__deprecated__]]
      |                                  ^

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.cc has correct #includes/fwd-decls)

# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_port.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_preprocessor.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_regex.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.cc
# /home/runner/work/include-what-you-use/include-what-you-use/build/bin/include-what-you-use -Xiwyu --check_also=*/iwyu_port.h -Xiwyu --check_also=*/iwyu_stl_util.h -Xiwyu --check_also=*/iwyu_string_util.h -Xiwyu --check_also=*/iwyu_use_flags.h -Xiwyu --check_also=*/iwyu_version.h -DIWYU_GIT_REV="dc5c551" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/usr/lib/llvm-20/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -fno-exceptions -funwind-tables -o CMakeFiles/include-what-you-use.dir/iwyu_verrs.cc.o -c /home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.cc

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.cc has correct #includes/fwd-decls)

/home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.cc:380:49: warning: @headername directive missing a closing brace

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.cc has correct #includes/fwd-decls)


(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.h has correct #includes/fwd-decls)

(/home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.cc has correct #includes/fwd-decls)
fix_includes.py (exit: 0)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_use_flags.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_stl_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_ast_util.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_cache.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_driver.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_getopt.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_string_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_version.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_globals.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_include_picker.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_lexer_utils.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_location_util.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_output.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_path_util.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_port.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_preprocessor.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_regex.cc: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.h: iwyu reports no contentful changes)
(skipping /home/runner/work/include-what-you-use/include-what-you-use/iwyu_verrs.cc: iwyu reports no contentful changes)
IWYU edited 0 files on your behalf.
diff

@kimgr
Copy link
Contributor Author

kimgr commented Sep 29, 2024

OK, I'm going to say this is ready for action now. Yolo, etc!

@kimgr kimgr added this to the iwyu 0.23 milestone Sep 29, 2024
@kimgr kimgr merged commit 191e261 into include-what-you-use:master Sep 29, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants