Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

Segfault in clang, using auto keyword on templated assignment operator. #33106

Open Quuxplusone opened 7 years ago

Quuxplusone commented 7 years ago
Bugzilla Link PR34134
Status NEW
Importance P normal
Reported by Marcus Campbell Bannerman (m.campbellbannerman@abdn.ac.uk)
Reported on 2017-08-09 04:20:21 -0700
Last modified on 2017-09-28 06:34:15 -0700
Version 4.0
Hardware PC Linux
CC daniel.marjamaki@evidente.se, dgregor@apple.com, dimitry@andric.com, llvm-bugs@lists.llvm.org
Fixed by commit(s)
Attachments test-63a412.cpp (250 bytes, text/x-c++src)
test-63a412.sh (2338 bytes, application/x-shellscript)
Blocks
Blocked by
See also
Created attachment 18952
Pre-processed source

The code below causes a segfault on clang++-4.0 on Ubuntu.

class A {
  template<class T>
  A(const T& a) { }

  A& operator=(const A& a) { return *this; }

  template<class T>
  auto operator=(const T& a) -> decltype(*this = A(a)) { return *this = A(a); }
}

int main() {
}

Crash trace

#0 0x00007fecb96339a8 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/usr/lib/x86_64-linux-gnu/libLLVM-4.0.so.1+0x70e9a8)
#1 0x00007fecb9631b2e llvm::sys::RunSignalHandlers() (/usr/lib/x86_64-linux-
gnu/libLLVM-4.0.so.1+0x70cb2e)
#2 0x00007fecb9631c7c (/usr/lib/x86_64-linux-gnu/libLLVM-4.0.so.1+0x70cc7c)
#3 0x00007fecbbe7d390 __restore_rt (/lib/x86_64-linux-
gnu/libpthread.so.0+0x11390)
#4 0x0000000000f279e3 (/usr/lib/llvm-4.0/bin/clang+0xf279e3)
#5 0x0000000000f2b800 (/usr/lib/llvm-4.0/bin/clang+0xf2b800)
#6 0x0000000000f2cdb2 (/usr/lib/llvm-4.0/bin/clang+0xf2cdb2)
#7 0x0000000000f2d126
clang::Sema::BuildCXXFunctionalCastExpr(clang::TypeSourceInfo*,
clang::SourceLocation, clang::Expr*, clang::SourceLocation) (/usr/lib/llvm-
4.0/bin/clang+0xf2d126)
#8 0x00000000010f86d4
clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation) (/usr/lib/llvm-4.0/bin/clang+0x10f86d4)
#9 0x00000000012e6304 (/usr/lib/llvm-4.0/bin/clang+0x12e6304)
#10 0x00000000012e3ad8 (/usr/lib/llvm-4.0/bin/clang+0x12e3ad8)
#11 0x00000000012f3b37 (/usr/lib/llvm-4.0/bin/clang+0x12f3b37)
#12 0x00000000012e3a4c (/usr/lib/llvm-4.0/bin/clang+0x12e3a4c)
#13 0x00000000012f52a9 (/usr/lib/llvm-4.0/bin/clang+0x12f52a9)
#14 0x00000000012e38d9 (/usr/lib/llvm-4.0/bin/clang+0x12e38d9)
#15 0x00000000012f3443 (/usr/lib/llvm-4.0/bin/clang+0x12f3443)
#16 0x00000000012e3aa6 (/usr/lib/llvm-4.0/bin/clang+0x12e3aa6)
#17 0x00000000012dbd91 (/usr/lib/llvm-4.0/bin/clang+0x12dbd91)
#18 0x00000000012e1324
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
4.0/bin/clang+0x12e1324)
#19 0x0000000001300998 clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*)
(/usr/lib/llvm-4.0/bin/clang+0x1300998)
Stack dump:
0.      Program arguments: /usr/lib/llvm-4.0/bin/clang -cc1 -triple x86_64-pc-
linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-
value-names -main-file-name test.cpp -mrelocation-model static -mthread-model
posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -
munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-
tuning=gdb -resource-dir /usr/lib/llvm-4.0/bin/../lib/clang/4.0.0 -internal-
isystem /usr/bin/../lib/gcc/x86_64-linux-
gnu/6.3.0/../../../../include/c++/6.3.0 -internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/x86_64-linux-
gnu/c++/6.3.0 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-
gnu/6.3.0/../../../../include/x86_64-linux-gnu/c++/6.3.0 -internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-
gnu/6.3.0/../../../../include/c++/6.3.0/backward -internal-isystem
/usr/include/clang/4.0.0/include/ -internal-isystem /usr/local/include -
internal-isystem /usr/lib/llvm-4.0/bin/../lib/clang/4.0.0/include -internal-
externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem
/include -internal-externc-isystem /usr/include --std=c++11 -fdeprecated-macro -
fdebug-compilation-dir /home/mjki2mb2/CoreChemical/simcem_core/stator/build -
ferror-limit 19 -fmessage-length 133 -fobjc-runtime=gcc -fcxx-exceptions -
fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/test-5181f9.o
-x c++ test.cpp
1.      test.cpp:8:77: current parser token ';'
2.      test.cpp:1:1: parsing struct/union/class body 'A'
3.      test.cpp:8:56: parsing function body 'A::operator='
4.      test.cpp:8:56: in compound statement ('{}')
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 4.0.0-0ubuntu0~xedgers16.04.1 (tags/RELEASE_400/rc1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Quuxplusone commented 7 years ago

Attached test-63a412.cpp (250 bytes, text/x-c++src): Pre-processed source

Quuxplusone commented 7 years ago

Attached test-63a412.sh (2338 bytes, application/x-shellscript): Run script

Quuxplusone commented 7 years ago
For me, it doesn't segfault, but simply complains about the recursive template
exceeding the maximum instantiation depth:

$ clang-4.0.0 -std=c++11 -c test-63a412.cpp
test.cpp:8:50: fatal error: recursive template instantiation exceeded maximum
depth of 1024
  auto operator=(const T& a) -> decltype(*this = A(a)) { return *this = A(a); }
                                                 ^
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
  auto operator=(const T& a) -> decltype(*this = A(a)) { return *this = A(a); }
                                               ^
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
test.cpp:8:48: note: (skipping 1015 contexts in backtrace; use -ftemplate-
backtrace-limit=0 to see all)
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
test.cpp:8:48: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
test.cpp:8:71: note: while substituting deduced template arguments into
function template 'operator=' [with T = A]
  auto operator=(const T& a) -> decltype(*this = A(a)) { return *this = A(a); }
                                                                      ^
1 error generated.
Quuxplusone commented 7 years ago
Yeah the code has "issues" and is not valid C++, but the segfault is still
invalid behaviour.

I've tested on Ubuntu 16.04 and 17.04, using  packages of clang++-4.0 from
http://apt.llvm.org/ and both installs segfault. I have a segfault with clang++-
5.0 as well (see below).

There's nothing "unusual" about my system configuration and I constantly
compile plenty of code using clang without issues so its not systemic.

#0 0x00007f644f35d0ea llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/usr/lib/llvm-5.0/bin/../lib/libLLVM-5.0.so.1+0x7c80ea)
#1 0x00007f644f35b21e llvm::sys::RunSignalHandlers() (/usr/lib/llvm-
5.0/bin/../lib/libLLVM-5.0.so.1+0x7c621e)
#2 0x00007f644f35b35a (/usr/lib/llvm-5.0/bin/../lib/libLLVM-5.0.so.1+0x7c635a)
#3 0x00007f6452196670 __restore_rt (/lib/x86_64-linux-
gnu/libpthread.so.0+0x11670)
#4 0x0000563c89411524
clang::InitializationSequence::InitializeFrom(clang::Sema&,
clang::InitializedEntity const&, clang::InitializationKind const&,
llvm::MutableArrayRef<clang::Expr*>, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x1040524)
#5 0x0000563c8941c35b
clang::Sema::PerformCopyInitialization(clang::InitializedEntity const&,
clang::SourceLocation, clang::ActionResult<clang::Expr*, true>, bool, bool)
(/usr/lib/llvm-5.0/bin/clang+0x104b35b)
#6 0x0000563c893760c9
clang::Sema::GatherArgumentsForCall(clang::SourceLocation,
clang::FunctionDecl*, clang::FunctionProtoType const*, unsigned int,
llvm::ArrayRef<clang::Expr*>, llvm::SmallVectorImpl<clang::Expr*>&,
clang::Sema::VariadicCallType, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0xfa50c9)
#7 0x0000563c892c0a6c
clang::Sema::CompleteConstructorCall(clang::CXXConstructorDecl*,
llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation,
llvm::SmallVectorImpl<clang::Expr*>&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0xeefa6c)
#8 0x0000563c8940c899 (/usr/lib/llvm-5.0/bin/clang+0x103b899)
#9 0x0000563c89419770 clang::InitializationSequence::Perform(clang::Sema&,
clang::InitializedEntity const&, clang::InitializationKind const&,
llvm::MutableArrayRef<clang::Expr*>, clang::QualType*) (/usr/lib/llvm-
5.0/bin/clang+0x1048770)
#10 0x0000563c8919b3d3 (/usr/lib/llvm-5.0/bin/clang+0xdca3d3)
#11 0x0000563c8919fd40 (/usr/lib/llvm-5.0/bin/clang+0xdced40)
#12 0x0000563c891a0d92 (/usr/lib/llvm-5.0/bin/clang+0xdcfd92)
#13 0x0000563c891a34cd
clang::Sema::BuildCXXFunctionalCastExpr(clang::TypeSourceInfo*,
clang::QualType, clang::SourceLocation, clang::Expr*, clang::SourceLocation)
(/usr/lib/llvm-5.0/bin/clang+0xdd24cd)
#14 0x0000563c893a361b
clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation) (/usr/lib/llvm-5.0/bin/clang+0xfd261b)
#15 0x0000563c895c0864 (/usr/lib/llvm-5.0/bin/clang+0x11ef864)
#16 0x0000563c895aa7c0 (/usr/lib/llvm-5.0/bin/clang+0x11d97c0)
#17 0x0000563c895afc17 (/usr/lib/llvm-5.0/bin/clang+0x11dec17)
#18 0x0000563c895aa734 (/usr/lib/llvm-5.0/bin/clang+0x11d9734)
#19 0x0000563c895b0669 (/usr/lib/llvm-5.0/bin/clang+0x11df669)
#20 0x0000563c895aa5b9 (/usr/lib/llvm-5.0/bin/clang+0x11d95b9)
#21 0x0000563c895c155c (/usr/lib/llvm-5.0/bin/clang+0x11f055c)
#22 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#23 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#24 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#25 0x0000563c895cfc69 clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*)
(/usr/lib/llvm-5.0/bin/clang+0x11fec69)
#26 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#27 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#28 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#29 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#30 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#31 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#32 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#33 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#34 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#35 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#36 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#37 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#38 0x0000563c895cfc69 clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*)
(/usr/lib/llvm-5.0/bin/clang+0x11fec69)
#39 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#40 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#41 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#42 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#43 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#44 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#45 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#46 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#47 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#48 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#49 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#50 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#51 0x0000563c895cfc69 clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*)
(/usr/lib/llvm-5.0/bin/clang+0x11fec69)
#52 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#53 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#54 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#55 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#56 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#57 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#58 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#59 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#60 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#61 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#62 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#63 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#64 0x0000563c895cfc69 clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*)
(/usr/lib/llvm-5.0/bin/clang+0x11fec69)
#65 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#66 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#67 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#68 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#69 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#70 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#71 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#72 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#73 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#74 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#75 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#76 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#77 0x0000563c895cfc69 clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*)
(/usr/lib/llvm-5.0/bin/clang+0x11fec69)
#78 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#79 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#80 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#81 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#82 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#83 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#84 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#85 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#86 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#87 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#88 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#89 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#90 0x0000563c895cfc69 clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*)
(/usr/lib/llvm-5.0/bin/clang+0x11fec69)
#91 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#92 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#93 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#94 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#95 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#96 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#97 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#98 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#99 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#100 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#101 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#102 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#103 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#104 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#105 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#106 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#107 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#108 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#109 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#110 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#111 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#112 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#113 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#114 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#115 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#116 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#117 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#118 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#119 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#120 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#121 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#122 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#123 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#124 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#125 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#126 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#127 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#128 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#129 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#130 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#131 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#132 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#133 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#134 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#135 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#136 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#137 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#138 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#139 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#140 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#141 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#142 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#143 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#144 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#145 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#146 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#147 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#148 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#149 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#150 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#151 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#152 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#153 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#154 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#155 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#156 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#157 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#158 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#159 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#160 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#161 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#162 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#163 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#164 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#165 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#166 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#167 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#168 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#169 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#170 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#171 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#172 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#173 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#174 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#175 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#176 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#177 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#178 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#179 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#180 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#181 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#182 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#183 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#184 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#185 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#186 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#187 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#188 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#189 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#190 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#191 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#192 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#193 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#194 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#195 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#196 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#197 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#198 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#199 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#200 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#201 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#202 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#203 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#204 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#205 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#206 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#207 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#208 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#209 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#210 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#211 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#212 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#213 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#214 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#215 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#216 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#217 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#218 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#219 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#220 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#221 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#222 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#223 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#224 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#225 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#226 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#227 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#228 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#229 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#230 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#231 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#232 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#233 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#234 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#235 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#236 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#237 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#238 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#239 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#240 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#241 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#242 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
#243 0x0000563c895aa78e (/usr/lib/llvm-5.0/bin/clang+0x11d978e)
#244 0x0000563c895b1bf8 (/usr/lib/llvm-5.0/bin/clang+0x11e0bf8)
#245 0x0000563c895cae31
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/usr/lib/llvm-
5.0/bin/clang+0x11f9e31)
#246 0x0000563c895cfc69
clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*) (/usr/lib/llvm-
5.0/bin/clang+0x11fec69)
#247 0x0000563c895e150d
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/usr/lib/llvm-5.0/bin/clang+0x121050d)
#248 0x0000563c895dd542 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/lib/llvm-5.0/bin/clang+0x120c542)
#249 0x0000563c89596c95
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/lib/llvm-5.0/bin/clang+0x11c5c95)
#250 0x0000563c8959b448
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/lib/llvm-
5.0/bin/clang+0x11ca448)
#251 0x0000563c894ce38b
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) (/usr/lib/llvm-
5.0/bin/clang+0x10fd38b)
#252 0x0000563c894ce9d4 clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool) (/usr/lib/llvm-5.0/bin/clang+0x10fd9d4)
#253 0x0000563c894cec25
clang::Sema::AddMemberOperatorCandidates(clang::OverloadedOperatorKind,
clang::SourceLocation, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, clang::SourceRange) (/usr/lib/llvm-
5.0/bin/clang+0x10fdc25)
#254 0x0000563c894dc583
clang::Sema::CreateOverloadedBinOp(clang::SourceLocation,
clang::BinaryOperatorKind, clang::UnresolvedSetImpl const&, clang::Expr*,
clang::Expr*) (/usr/lib/llvm-5.0/bin/clang+0x110b583)
#255 0x0000563c895c1708 (/usr/lib/llvm-5.0/bin/clang+0x11f0708)
Stack dump:
0.      Program arguments: /usr/lib/llvm-5.0/bin/clang -cc1 -triple x86_64-pc-
linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-
value-names -main-file-name test.cpp -mrelocation-model static -mthread-model
posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -
munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-
tuning=gdb -resource-dir /usr/lib/llvm-5.0/lib/clang/5.0.0 -internal-isystem
/usr/include/clang/5.0.0/include/ -internal-isystem /usr/bin/../lib/gcc/x86_64-
linux-gnu/6.3.0/../../../../include/c++/6.3.0 -internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/x86_64-linux-
gnu/c++/6.3.0 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-
gnu/6.3.0/../../../../include/x86_64-linux-gnu/c++/6.3.0 -internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-
gnu/6.3.0/../../../../include/c++/6.3.0/backward -internal-isystem
/usr/local/include -internal-isystem /usr/lib/llvm-5.0/lib/clang/5.0.0/include -
internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-
isystem /include -internal-externc-isystem /usr/include --std=c++11 -
fdeprecated-macro -fdebug-compilation-dir
/home/mjki2mb2/CoreChemical/simcem_core -ferror-limit 19 -fmessage-length 133 -
fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -
fcolor-diagnostics -o /tmp/test-096858.o -x c++ test.cpp
1.      test.cpp:8:77: current parser token ';'
2.      test.cpp:1:1: parsing struct/union/class body 'A'
3.      test.cpp:8:56: parsing function body 'A::operator='
4.      test.cpp:8:56: in compound statement ('{}')
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 5.0.0-svn310538-1~exp1 (branches/release_50)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: PLEASE submit a bug report to
http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and
associated run script.
clang: note: diagnostic msg:
Quuxplusone commented 7 years ago
To prove its not my system, I set up a github repository with the test case:
https://github.com/toastedcrumpets/clang-bug-34134

I then use Travis CI to build the test case on a range of fresh clang installs:
https://travis-ci.org/toastedcrumpets/clang-bug-34134/builds/263262653

clang 3.6, 3.7, 3.8, 3.9, all fail with the correct template recursion error.
clang 4.0 displays the segfault.
clang 5.0 fails to install so no result there (issue with travis)
Quuxplusone commented 7 years ago

I can reproduce with svn head