Package: iwyu Version: 8.0-2 Severity: normal File: /usr/bin/include-what-you-use Usertags: crash
I found a case that crashes iwyu with a SIGABRT: $ sudo apt -qq install libboost-python-dev libboost-dev $ echo '#include <boost/python/detail/type_list_impl.hpp>' > foo.cpp $ gdb -batch -n -ex 'set pagination off' -ex run -ex bt -ex 'bt full' -ex 'thread apply all bt full' --args include-what-you-use foo.cpp [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Cycle in include-mapping: <boost/python/detail/type_list_impl.hpp> -> <boost/preprocessor/iteration/detail/iter/forward1.hpp> -> <boost/preprocessor/iteration/detail/iter/forward1.hpp> /build/iwyu-oe4HdZ/iwyu-8.0/iwyu_include_picker.cc:928: Assertion failed: Cycle in include-mapping Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007ffff3ef7535 in __GI_abort () at abort.c:79 #2 0x000055555570ee58 in include_what_you_use::FatalMessageEmitter::~FatalMessageEmitter() () #3 0x0000555555933969 in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () #4 0x0000555555933a6e in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () #5 0x0000555555933a6e in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () #6 0x0000555555933bc2 in include_what_you_use::(anonymous namespace)::MakeMapTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*) () #7 0x00005555559356f4 in include_what_you_use::IncludePicker::FinalizeAddedIncludes() () #8 0x000055555596bcff in include_what_you_use::IwyuPreprocessorInfo::HandlePreprocessingDone() () #9 0x0000555555720ae5 in include_what_you_use::IwyuAstConsumer::HandleTranslationUnit(clang::ASTContext&) () #10 0x0000555556392393 in clang::ParseAST(clang::Sema&, bool, bool) () #11 0x000055555616312f in clang::FrontendAction::Execute() () #12 0x0000555556122ca8 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) () #13 0x00005555557225f6 in main () #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 set = {__val = {0, 0, 140737287603840, 0, 10, 0, 895, 0, 0, 281470681751424, 0, 0, 0, 0, 0, 0}} pid = <optimized out> tid = <optimized out> ret = <optimized out> #1 0x00007ffff3ef7535 in __GI_abort () at abort.c:79 save_stage = 1 act = {__sigaction_handler = {sa_handler = 0x1700000014, sa_sigaction = 0x1700000014}, sa_mask = {__val = {4294967321, 103079215120, 47244640260, 55834574858, 64424509462, 140737488343792, 140737288834472, 10, 10, 140737488343792, 140737288834906, 1, 140737287603840, 140737287607648, 140737286259626, 140737289557536}}, sa_flags = 0, sa_restorer = 0x0} sigs = {__val = {32, 0 <repeats 15 times>}} #2 0x000055555570ee58 in include_what_you_use::FatalMessageEmitter::~FatalMessageEmitter() () No symbol table info available. #3 0x0000555555933969 in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () No symbol table info available. #4 0x0000555555933a6e in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () No symbol table info available. #5 0x0000555555933a6e in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () No symbol table info available. #6 0x0000555555933bc2 in include_what_you_use::(anonymous namespace)::MakeMapTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*) () No symbol table info available. #7 0x00005555559356f4 in include_what_you_use::IncludePicker::FinalizeAddedIncludes() () No symbol table info available. #8 0x000055555596bcff in include_what_you_use::IwyuPreprocessorInfo::HandlePreprocessingDone() () No symbol table info available. #9 0x0000555555720ae5 in include_what_you_use::IwyuAstConsumer::HandleTranslationUnit(clang::ASTContext&) () No symbol table info available. #10 0x0000555556392393 in clang::ParseAST(clang::Sema&, bool, bool) () No symbol table info available. #11 0x000055555616312f in clang::FrontendAction::Execute() () No symbol table info available. #12 0x0000555556122ca8 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) () No symbol table info available. #13 0x00005555557225f6 in main () No symbol table info available. Thread 1 (Thread 0x7ffff3c91740 (LWP 404180)): #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 set = {__val = {0, 0, 140737287603840, 0, 10, 0, 895, 0, 0, 281470681751424, 0, 0, 0, 0, 0, 0}} pid = <optimized out> tid = <optimized out> ret = <optimized out> #1 0x00007ffff3ef7535 in __GI_abort () at abort.c:79 save_stage = 1 act = {__sigaction_handler = {sa_handler = 0x1700000014, sa_sigaction = 0x1700000014}, sa_mask = {__val = {4294967321, 103079215120, 47244640260, 55834574858, 64424509462, 140737488343792, 140737288834472, 10, 10, 140737488343792, 140737288834906, 1, 140737287603840, 140737287607648, 140737286259626, 140737289557536}}, sa_flags = 0, sa_restorer = 0x0} sigs = {__val = {32, 0 <repeats 15 times>}} #2 0x000055555570ee58 in include_what_you_use::FatalMessageEmitter::~FatalMessageEmitter() () No symbol table info available. #3 0x0000555555933969 in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () No symbol table info available. #4 0x0000555555933a6e in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () No symbol table info available. #5 0x0000555555933a6e in include_what_you_use::(anonymous namespace)::MakeNodeTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, include_what_you_use::(anonymous namespace)::TransitiveStatus, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, include_what_you_use::(anonymous namespace)::TransitiveStatus> > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () No symbol table info available. #6 0x0000555555933bc2 in include_what_you_use::(anonymous namespace)::MakeMapTransitive(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >*) () No symbol table info available. #7 0x00005555559356f4 in include_what_you_use::IncludePicker::FinalizeAddedIncludes() () No symbol table info available. #8 0x000055555596bcff in include_what_you_use::IwyuPreprocessorInfo::HandlePreprocessingDone() () No symbol table info available. #9 0x0000555555720ae5 in include_what_you_use::IwyuAstConsumer::HandleTranslationUnit(clang::ASTContext&) () No symbol table info available. #10 0x0000555556392393 in clang::ParseAST(clang::Sema&, bool, bool) () No symbol table info available. #11 0x000055555616312f in clang::FrontendAction::Execute() () No symbol table info available. #12 0x0000555556122ca8 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) () No symbol table info available. #13 0x00005555557225f6 in main () No symbol table info available. -- System Information: Debian Release: bullseye/sid APT prefers testing-debug APT policy: (900, 'testing-debug'), (900, 'testing'), (800, 'unstable-debug'), (800, 'unstable'), (790, 'buildd-unstable'), (700, 'experimental-debug'), (700, 'experimental'), (690, 'buildd-experimental') Architecture: amd64 (x86_64) Kernel: Linux 5.3.0-3-amd64 (SMP w/4 CPU cores) Kernel taint flags: TAINT_FIRMWARE_WORKAROUND, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8), LANGUAGE=en_AU:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages iwyu depends on: ii clang 1:8.0-48.3 ii clang-7 1:7.0.1-9+b2 ii clang-8 1:8.0.1-4 ii clang-9 1:9.0.0-4 ii libc6 2.29-3 ii libllvm8 1:8.0.1-4 ii libstdc++6 9.2.1-21 ii python 2.7.17-2 iwyu recommends no packages. iwyu suggests no packages. -- no debconf information -- bye, pabs https://wiki.debian.org/PaulWise
signature.asc
Description: This is a digitally signed message part