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

Don't attempt to clear elaborated type duplicates #1676

Merged

Conversation

bolshakov-a
Copy link
Contributor

It was assumed in #1232 that at most one elaborated type can "own" a tag declaration (i.e. none of possible following similar types redeclares that declaration), hence there should be no duplicates in fwd_decl_map. Even if that assumption is true, an ElaboratedTypeLoc may be handled more than once if it corresponds to different AST nodes. It happens when that type is used in a declaration of several variables.

Elaborated types should obviously not be removed in any case because they are part of user's main code and not of #include or fwd-decl lists.

This fixes #1674.

It was assumed in include-what-you-use#1232 that at most one elaborated type can "own" a tag
declaration (i.e. none of possible following similar types redeclares
that declaration), hence there should be no duplicates in fwd_decl_map.
Even if that assumption is true, an ElaboratedTypeLoc may be handled
more than once if it corresponds to different AST nodes. It happens when
that type is used in a declaration of several variables.

Elaborated types should obviously not be removed in any case because
they are part of user's main code and not of #include or fwd-decl lists.

This fixes include-what-you-use#1674.
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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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/iwyu_string_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.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_port.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:1407: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:1407: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:1407:54)>' requested here
 1407 |   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/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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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/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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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="273854c" -DIWYU_RESOURCE_BINARY_PATH="/usr/lib/llvm-20/bin/clang-20" -DIWYU_RESOURCE_DIR="" -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_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/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_string_util.h: iwyu reports no contentful changes)
(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_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

kimgr commented Jan 26, 2025

LGTM, thank you!

@kimgr kimgr added this to the iwyu 0.24 milestone Jan 26, 2025
@kimgr kimgr merged commit 164937a into include-what-you-use:master Jan 26, 2025
1 check passed
@bolshakov-a bolshakov-a deleted the elaborated_in_multiple_decl branch January 26, 2025 18:21
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.

iwyu mangles anonymous unions
2 participants