Open Quuxplusone opened 4 years ago
crash_data.tar.xz
Created attachment 22979 Crash backtrace, preprocessed source, and associated run script Using clang 10.0.0 - 40668abca4d307e02b33345cfdb7271549ff48d0 Using this piece of invalid code: #include <range/v3/view/all.hpp> #include <string> #include <vector> #include <range/v3/all.hpp> int main (int /*argc*/, char** /*argv*/) { std::vector<std::string> words{"hi", "there"}; auto by_first_letter = ranges::group_by_view(ranges::views::all(words), [] () {} ); for (const auto _: by_first_letter) {} } causes a segfault in clang. Ranges library used is https://github.com/ericniebler/range- v3/releases/tag/0.10.0 Version 0.10.0 I apologise if this is a duplicate or there is missing information that is obvious but I am out of my depth somewhat here. Below I have pasted a redacted version of the crash report output. The full length one is included in the attachment but I cannot paste it here due to the character limit. t2.cpp:15:19: warning: unused variable '_' [-Wunused-variable] for (const auto _: by_first_letter) {} ^ In file included from t2.cpp:5: In file included from /usr/local/include/range/v3/all.hpp:25: In file included from /usr/local/include/range/v3/view.hpp:46: /usr/local/include/range/v3/view/group_by.hpp:86:28: error: no matching function for call to object of type 'const ranges::invoke_fn' return invoke(fun_, *first_, r); ^~~~~~ /usr/local/include/range/v3/functional/invoke.hpp:136:20: note: in instantiation of member function 'ranges::group_by_view<ranges::ref_view<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> > > > >, (lambda at t2.cpp:12:7)>::cursor<false>::pred::operator()' requested here return ((F&&) f)((Args&&) args...); ^ /usr/local/include/range/v3/view/group_by.hpp:104:24: note: in instantiation of function template specialization 'ranges::find_if_not_fn::operator()<__gnu_cxx::__normal_iterator<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> > > > >, __gnu_cxx::__normal_iterator<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> > > > >, ranges::group_by_view<ranges::ref_view<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> > > > >, (lambda at t2.cpp:12:7)>::cursor<false>::pred, ranges::identity>' requested here cur_ = find_if_not(cur_, last_, pred{cur_, fun_}); ^ /usr/local/include/range/v3/detail/range_access.hpp:128:24: note: in instantiation of member function 'ranges::group_by_view<ranges::ref_view<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> > > > >, (lambda at t2.cpp:12:7)>::cursor<false>::next' requested here return pos.next() ^ /usr/local/include/concepts/concepts.hpp:554:27: note: expanded from macro 'CPP_auto_fun' #define CPP_auto_fun(X) X CPP_AUTO_FUN_IMPL_ ^ /usr/local/include/concepts/concepts.hpp:555:47: note: expanded from macro 'CPP_AUTO_FUN_IMPL_' #define CPP_AUTO_FUN_IMPL_(...) (__VA_ARGS__) CPP_AUTO_FUN_RETURNS_ ^ /usr/local/include/range/v3/functional/invoke.hpp:115:24: note: candidate template ignored: could not match 'F T::*' against 'semiregular_box_ref_or_val_t<(lambda at t2.cpp:12:7), false>' (aka 'ranges::reference_wrapper<ranges::semiregular_box<(lambda at t2.cpp:12:7)> >') constexpr auto operator()(F T::*f, T1&& t1, Args&&... args) const ^ /usr/local/include/range/v3/functional/invoke.hpp:132:14: note: candidate template ignored: substitution failure [with F = const ranges::reference_wrapper<ranges::semiregular_box<(lambda at t2.cpp:12:7)> > &, Args = <std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &>]: no matching function for call to object of type 'const ranges::reference_wrapper<ranges::semiregular_box<(lambda at t2.cpp:12:7)> >' auto operator()(F&& f, Args&&... args) const ^ /usr/local/include/range/v3/functional/invoke.hpp:123:24: note: candidate function template not viable: requires 2 arguments, but 3 were provided constexpr auto operator()(D T::*f, T1&& t1) const ^ Stack dump: 0. Program arguments: /usr/local/bin/clang-10 -cc1 -triple x86_64-unknown-linux- gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value- names -main-file-name t2.cpp -mrelocation-model static -mthread-model posix - mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind- tables -fuse-init-array -target-cpu znver1 -target-feature +sse2 -target- feature +cx16 -target-feature +sahf -target-feature -tbm -target-feature - avx512ifma -target-feature +sha -target-feature -gfni -target-feature -fma4 - target-feature -vpclmulqdq -target-feature +prfchw -target-feature +bmi2 - target-feature -cldemote -target-feature +fsgsbase -target-feature -ptwrite - target-feature +xsavec -target-feature +popcnt -target-feature +aes -target- feature -avx512bitalg -target-feature -movdiri -target-feature +xsaves -target- feature -avx512er -target-feature -avx512vnni -target-feature -avx512vpopcntdq - target-feature -pconfig -target-feature -clwb -target-feature -avx512f -target- feature +clzero -target-feature -pku -target-feature +mmx -target-feature -lwp - target-feature -rdpid -target-feature -xop -target-feature +rdseed -target- feature -waitpkg -target-feature -movdir64b -target-feature +sse4a -target- feature -avx512bw -target-feature +clflushopt -target-feature +xsave -target- feature -avx512vbmi2 -target-feature +64bit -target-feature -avx512vl -target- feature -invpcid -target-feature -avx512cd -target-feature +avx -target-feature -vaes -target-feature +cx8 -target-feature +fma -target-feature -rtm -target- feature +bmi -target-feature -enqcmd -target-feature +rdrnd -target-feature +mwaitx -target-feature +sse4.1 -target-feature +sse4.2 -target-feature +avx2 - target-feature +fxsr -target-feature -wbnoinvd -target-feature +sse -target- feature +lzcnt -target-feature +pclmul -target-feature -prefetchwt1 -target- feature +f16c -target-feature +ssse3 -target-feature -sgx -target-feature - shstk -target-feature +cmov -target-feature -avx512vbmi -target-feature - avx512bf16 -target-feature +movbe -target-feature +xsaveopt -target-feature - avx512dq -target-feature +adx -target-feature -avx512pf -target-feature +sse3 - dwarf-column-info -debug-info-kind=limited -dwarf-version=4 -debugger- tuning=gdb -resource-dir /usr/local/lib/clang/10.0.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8 - internal-isystem /usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64- linux-gnu/c++/8 -internal-isystem /usr/lib/gcc/x86_64-linux- gnu/8/../../../../include/c++/8/backward -internal-isystem /usr/local/include - internal-isystem /usr/local/lib/clang/10.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal- externc-isystem /usr/include -Wall -Wextra -Wfloat-equal -Wwrite-strings - Wswitch-enum -Wunreachable-code -Wconversion -Wcast-qual -Wstrict-overflow=5 - Werror=shadow -Werror=return-type -Wuninitialized -Weffc++ -pedantic -std=c++17 -fdeprecated-macro -fdebug-compilation-dir /home/justin/cpp/wordsearch_solvercp/trie/clang_crash_ranges_v3 -ferror-limit 19 -fmessage-length 0 -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fcxx-exceptions - fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/t2-6ce2ff.o -x c++ t2.cpp 1. <eof> parser at end of file 2. /usr/local/include/range/v3/view/group_by.hpp:96:18: instantiating function definition 'ranges::group_by_view<ranges::ref_view<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> > > > >, (lambda at t2.cpp:12:7)>::cursor<false>::read' 3. /usr/local/include/range/v3/view/take_while.hpp:97:19: instantiating function definition 'ranges::take_while_view<ranges::subrange<__gnu_cxx::__normal_iterator<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> > > > >, __gnu_cxx::__normal_iterator<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> > > > >, ranges::subrange_kind::sized>, ranges::group_by_view<ranges::ref_view<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> > > > >, (lambda at t2.cpp:12:7)>::cursor<false>::pred>::take_while_view' 4. /usr/local/include/range/v3/view/take_while.hpp:87:19: instantiating function definition 'ranges::iter_take_while_view<ranges::subrange<__gnu_cxx::__normal_iterator<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> > > > >, __gnu_cxx::__normal_iterator<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> > > > >, ranges::subrange_kind::sized>, ranges::indirected<ranges::group_by_view<ranges::ref_view<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> > > > >, (lambda at t2.cpp:12:7)>::cursor<false>::pred> >::iter_take_while_view' 5. /usr/local/include/concepts/concepts.hpp:745:23: instantiating function definition 'concepts::detail::and_<concepts::detail::and_<concepts::detail::boolean_<concepts::defs::defer::(lambda at /usr/local/include/concepts/concepts.hpp:1174:17)>, concepts::detail::boolean_<ranges::detail::defer::(lambda at /usr/local/include/range/v3/view/subrange.hpp:176:17)> >, std::integral_constant<bool, true> >::operator bool' 6. /usr/local/include/concepts/concepts.hpp:745:23: instantiating function definition 'concepts::detail::and_<concepts::detail::boolean_<concepts::defs::defer::(lambda at /usr/local/include/concepts/concepts.hpp:1174:17)>, concepts::detail::boolean_<ranges::detail::defer::(lambda at /usr/local/include/range/v3/view/subrange.hpp:176:17)> >::operator bool' 7. /usr/local/include/concepts/concepts.hpp:741:35: instantiating function definition 'concepts::detail::and_<concepts::detail::boolean_<concepts::defs::defer::(lambda at /usr/local/include/concepts/concepts.hpp:1174:17)>, concepts::detail::boolean_<ranges::detail::defer::(lambda at /usr/local/include/range/v3/view/subrange.hpp:176:17)> >::impl' 8. /usr/local/include/concepts/concepts.hpp:818:23: instantiating function definition 'concepts::detail::boolean_<ranges::detail::defer::(lambda at /usr/local/include/range/v3/view/subrange.hpp:176:17)>::operator bool<true>' 9. /usr/local/include/range/v3/view/subrange.hpp:176:17 <Spelling=/usr/local/include/concepts/concepts.hpp:255:13>: instantiating function definition 'ranges::detail::defer::(anonymous class)::operator()<std::integral_constant<bool, true> >' 10. /usr/local/include/range/v3/view/subrange.hpp:157:26: instantiating variable definition 'ranges::detail::pair_like_convertible_from_<ranges::view_adaptor<ranges::iter_take_while_view<ranges::subrange<__gnu_cxx::__normal_iterator<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> > > > >, __gnu_cxx::__normal_iterator<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> > > > >, ranges::subrange_kind::sized>, ranges::indirected<ranges::group_by_view<ranges::ref_view<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> > > > >, (lambda at t2.cpp:12:7)>::cursor<false>::pred> >, ranges::subrange<__gnu_cxx::__normal_iterator<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> > > > >, __gnu_cxx::__normal_iterator<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> > > > >, ranges::subrange_kind::sized>, ranges::finite>, const __gnu_cxx::__normal_iterator<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> > > > > &, const __gnu_cxx::__normal_iterator<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> > > > > &>' 11. /usr/local/include/range/v3/range/concepts.hpp:79:22: instantiating variable definition 'ranges::range<ranges::view_adaptor<ranges::iter_take_while_view<ranges::subrange<__gnu_cxx::__normal_iterator<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> > > > >, __gnu_cxx::__normal_iterator<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> > > > >, ranges::subrange_kind::sized>, ranges::indirected<ranges::group_by_view<ranges::ref_view<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> > > > >, (lambda at t2.cpp:12:7)>::cursor<false>::pred> >, ranges::subrange<__gnu_cxx::__normal_iterator<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> > > > >, __gnu_cxx::__normal_iterator<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> > > > >, ranges::subrange_kind::sized>, ranges::finite> >' ... [Removed, see attachment] ... #239 0x0000563f9621e549 clang::Sema::SubstDecl(clang::Decl*, clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) (/usr/local/bin/clang-10+0x5e8a549) #240 0x0000563f961e35c8 clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, llvm::function_ref<bool ()>) (/usr/local/bin/clang-10+0x5e4f5c8) #241 0x0000563f961e888c clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) (/usr/local/bin/clang-10+0x5e5488c) #242 0x0000563f960cd2fd clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder) (/usr/local/bin/clang-10+0x5d392fd) #243 0x0000563f960cfa25 clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) (/usr/local/bin/clang-10+0x5d3ba25) #244 0x0000563f960cfd38 clang::Sema::buildOverloadedCallSet(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::OverloadCandidateSet*, clang::ActionResult<clang::Expr*, true>*) (/usr/local/bin/clang-10+0x5d3bd38) #245 0x0000563f960d38d1 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/usr/local/bin/clang-10+0x5d3f8d1) #246 0x0000563f95f096fc clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/usr/local/bin/clang-10+0x5b756fc) #247 0x0000563f961faa54 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/usr/local/bin/clang-10+0x5e66a54) #248 0x0000563f961f4da7 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/usr/local/bin/clang-10+0x5e60da7) #249 0x0000563f961fd213 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) (/usr/local/bin/clang-10+0x5e69213) #250 0x0000563f96200782 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) (/usr/local/bin/clang-10+0x5e6c782) #251 0x0000563f96202a25 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc const&, clang::TemplateArgumentLoc&, bool) (/usr/local/bin/clang-10+0x5e6ea25) #252 0x0000563f96205e02 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&, clang::TemplateSpecializationTypeLoc, clang::TemplateName) (/usr/local/bin/clang-10+0x5e71e02) #253 0x0000563f961fe1cb clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) (/usr/local/bin/clang-10+0x5e6a1cb) #254 0x0000563f9620bd39 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformElaboratedType(clang::TypeLocBuilder&, clang::ElaboratedTypeLoc) (/usr/local/bin/clang-10+0x5e77d39) #255 0x0000563f961fdd1e clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) (/usr/local/bin/clang-10+0x5e69d1e) clang-10: error: unable to execute command: Segmentation fault (core dumped) clang-10: error: clang frontend command failed due to signal (use -v to see invocation) clang version 10.0.0 (https://github.com/llvm/llvm-project.git 40668abca4d307e02b33345cfdb7271549ff48d0) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/bin clang-10: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. clang-10: note: diagnostic msg: ******************** PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: clang-10: note: diagnostic msg: /tmp/t2-af9bd7.cpp clang-10: note: diagnostic msg: /tmp/t2-af9bd7.sh clang-10: note: diagnostic msg: ********************
Attached crash_data.tar.xz (783736 bytes, application/x-xz): Crash backtrace, preprocessed source, and associated run script
crash_data.tar.xz
(783736 bytes, application/x-xz)