Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

Clang crash when compiling a certain std::bind call #22838

Open Quuxplusone opened 9 years ago

Quuxplusone commented 9 years ago
Bugzilla Link PR22839
Status CONFIRMED
Importance P normal
Reported by f638197@trbvm.com
Reported on 2015-03-07 19:12:05 -0800
Last modified on 2015-03-22 18:51:53 -0700
Version 3.6
Hardware PC Linux
CC dimitry@andric.com, llvm-bugs@lists.llvm.org, nathan@acm.org
Fixed by commit(s)
Attachments test.zip (398320 bytes, application/x-zip)
Blocks
Blocked by
See also
The code & shell script are attached.
No traceback was generated.
Quuxplusone commented 9 years ago

Attached test.zip (398320 bytes, application/x-zip): Source code & shell script generated by clang - zipped

Quuxplusone commented 9 years ago

thanks

Quuxplusone commented 9 years ago
I can reproduce the crash with trunk r231588.  It looks like it is caused by an
endless recursion, leading to stack exhaustion (in the following trace, I
lowered the stack size limit to 1MB to trigger the crash early.):

(gdb) run
Starting program: /home/dim/obj/llvm-231588-trunk-freebsd11-amd64-ninja-dbg-
1/bin/clang-3.7 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -
disable-free -disable-llvm-verifier -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 -
target-linker-version 2.24 -g -dwarf-column-info -D LOG_ALL_OUTSIDE_DEBUG -Wno-
unused-value --std=c++11 -fdeprecated-macro -ferror-limit 19 -fmessage-length
80 -fno-operator-names -pthread -mstackrealign -fobjc-runtime=gcc -fcxx-
exceptions -fexceptions -fdiagnostics-show-option -x c++ test.cpp
[New Thread 808c06400 (LWP 100170)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 808c06400 (LWP 100170)]
0x0000000004b35385 in TryUserDefinedConversion (S=..., From=0x80a265f80,
ToType=..., SuppressUserConversions=true, AllowExplicit=false,
InOverloadResolution=true, CStyle=false, AllowObjCWritebackConversion=false,
AllowObjCConversionOnExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:1095
1095      ImplicitConversionSequence ICS;
(gdb) bt
#0  0x0000000004b35385 in TryUserDefinedConversion (S=..., From=0x80a265f80,
ToType=..., SuppressUserConversions=true, AllowExplicit=false,
InOverloadResolution=true, CStyle=false, AllowObjCWritebackConversion=false,
AllowObjCConversionOnExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:1095
#1  0x0000000004af836c in TryImplicitConversion (S=..., From=0x80a265f80,
ToType=..., SuppressUserConversions=true, AllowExplicit=false,
InOverloadResolution=true, CStyle=false, AllowObjCWritebackConversion=false,
AllowObjCConversionOnExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:1237
#2  0x0000000004b044c0 in TryCopyInitialization (S=..., From=0x80a265f80,
ToType=..., SuppressUserConversions=true, InOverloadResolution=true,
AllowObjCWritebackConversion=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:4713
#3  0x0000000004b035b4 in clang::Sema::AddOverloadCandidate (this=0x808cfa000,
Function=0x80a234440, FoundDecl=..., Args=..., CandidateSet=...,
SuppressUserConversions=true, PartialOverloading=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:5711
#4  0x0000000004afe17a in IsUserDefinedConversion (S=..., From=0x80a265f80,
ToType=..., User=..., CandidateSet=..., AllowExplicit=false,
AllowObjCConversionOnExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:3091
#5  0x0000000004b3543d in TryUserDefinedConversion (S=..., From=0x80a265f80,
ToType=..., SuppressUserConversions=false, AllowExplicit=false,
InOverloadResolution=false, CStyle=false, AllowObjCWritebackConversion=false,
AllowObjCConversionOnExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:1107
#6  0x0000000004af836c in TryImplicitConversion (S=..., From=0x80a265f80,
ToType=..., SuppressUserConversions=false, AllowExplicit=false,
InOverloadResolution=false, CStyle=false, AllowObjCWritebackConversion=false,
AllowObjCConversionOnExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:1237
#7  0x0000000004b344c0 in TryReferenceInit (S=..., Init=0x80a265f80,
DeclType=..., DeclLoc=..., SuppressUserConversions=false, AllowExplicit=false)
at /share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:4388
#8  0x0000000004b04430 in TryCopyInitialization (S=..., From=0x80a265f80,
ToType=..., SuppressUserConversions=false, InOverloadResolution=true,
AllowObjCWritebackConversion=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:4708
#9  0x0000000004b035b4 in clang::Sema::AddOverloadCandidate (this=0x808cfa000,
Function=0x809acfc90, FoundDecl=..., Args=..., CandidateSet=...,
SuppressUserConversions=false, PartialOverloading=false, AllowExplicit=false)
at /share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:5711
#10 0x0000000004a78f6f in ResolveConstructorOverload (S=..., DeclLoc=...,
Args=..., CandidateSet=..., Ctors=..., Best=@0x7ffffff025a8: 0x313cae5
<llvm::isa<clang::Type, clang::Type const*>(clang::Type const* const&)+21>,
CopyInitializing=true, AllowExplicit=false, OnlyListConstructors=false,
IsListInit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:3230
#11 0x0000000004a5f414 in TryConstructorInitialization (S=..., Entity=...,
Kind=..., Args=..., DestType=..., Sequence=..., IsListInit=false,
IsInitListCopy=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:3321
#12 0x0000000004a5ca7e in clang::InitializationSequence::InitializeFrom
(this=0x7ffffff02b60, S=..., Entity=..., Kind=..., Args=...,
TopLevelOfInitList=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:4810
#13 0x0000000004a5be8a in clang::InitializationSequence::InitializationSequence
(this=0x7ffffff02b60, S=..., Entity=..., Kind=..., Args=...,
TopLevelOfInitList=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:4615
#14 0x0000000004a6b41b in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7358
#15 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x80a234630, Proto=0x80a2345b0,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#16 0x00000000047e5343 in clang::Sema::CompleteConstructorCall
(this=0x808cfa000, Constructor=0x80a234630, ArgsPtr=..., Loc=...,
ConvertedArgs=..., AllowExplicit=false, IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaDeclCXX.cpp:11363
#17 0x0000000004a61bfe in clang::InitializationSequence::Perform
(this=0x7ffffff054d0, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:6039
#18 0x0000000004a6b487 in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7361
#19 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x809acfc90, Proto=0x809acfc10,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#20 0x00000000047e5343 in clang::Sema::CompleteConstructorCall
(this=0x808cfa000, Constructor=0x809acfc90, ArgsPtr=..., Loc=...,
ConvertedArgs=..., AllowExplicit=false, IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaDeclCXX.cpp:11363
#21 0x0000000004a68d6a in PerformConstructorInitialization (S=..., Entity=...,
Kind=..., Args=..., Step=..., ConstructorInitRequiresZeroInit=@0x7ffffff07f47:
false, IsListInitialization=false, IsStdInitListInitialization=false,
LBraceLoc=..., RBraceLoc=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:5402
#22 0x0000000004a63353 in clang::InitializationSequence::Perform
(this=0x7ffffff08190, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:6265
#23 0x0000000004a6b487 in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7361
#24 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x80a234630, Proto=0x80a2345b0,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#25 0x00000000047e5343 in clang::Sema::CompleteConstructorCall
(this=0x808cfa000, Constructor=0x80a234630, ArgsPtr=..., Loc=...,
ConvertedArgs=..., AllowExplicit=false, IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaDeclCXX.cpp:11363
#26 0x0000000004a61bfe in clang::InitializationSequence::Perform
(this=0x7ffffff0ab00, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:6039
#27 0x0000000004a6b487 in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7361
#28 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x809acfc90, Proto=0x809acfc10,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
[... this sequence goes on ...]
#382 0x0000000004a63353 in clang::InitializationSequence::Perform
(this=0x7ffffffdf910, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:6265
#383 0x0000000004a6b487 in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7361
#384 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x80a234630, Proto=0x80a2345b0,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#385 0x00000000047e5343 in clang::Sema::CompleteConstructorCall
(this=0x808cfa000, Constructor=0x80a234630, ArgsPtr=..., Loc=...,
ConvertedArgs=..., AllowExplicit=false, IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaDeclCXX.cpp:11363
#386 0x0000000004a61bfe in clang::InitializationSequence::Perform
(this=0x7ffffffe2280, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:6039
#387 0x0000000004a6b487 in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7361
#388 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x809acfc90, Proto=0x809acfc10,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#389 0x00000000047e5343 in clang::Sema::CompleteConstructorCall
(this=0x808cfa000, Constructor=0x809acfc90, ArgsPtr=..., Loc=...,
ConvertedArgs=..., AllowExplicit=false, IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaDeclCXX.cpp:11363
#390 0x0000000004a68d6a in PerformConstructorInitialization (S=..., Entity=...,
Kind=..., Args=..., Step=..., ConstructorInitRequiresZeroInit=@0x7ffffffe4cf7:
false, IsListInitialization=false, IsStdInitListInitialization=false,
LBraceLoc=..., RBraceLoc=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:5402
#391 0x0000000004a63353 in clang::InitializationSequence::Perform
(this=0x7ffffffe4f40, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:6265
#392 0x0000000004a6b487 in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7361
#393 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x0, Proto=0x809acefd0, FirstParam=0,
Args=..., AllArgs=..., CallType=clang::Sema::VariadicDoesNotApply,
AllowExplicit=false, IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#394 0x00000000048c1fc2 in clang::Sema::ConvertArgumentsForCall
(this=0x808cfa000, Call=0x80a266e30, Fn=0x80a266e18, FDecl=0x0,
Proto=0x809acefd0, Args=..., RParenLoc=..., IsExecConfig=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4334
#395 0x00000000048c46cd in clang::Sema::BuildResolvedCallExpr
(this=0x808cfa000, Fn=0x80a266e18, NDecl=0x0, LParenLoc=..., Args=...,
RParenLoc=..., Config=0x0, IsExecConfig=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4829
#396 0x00000000048afb84 in clang::Sema::ActOnCallExpr (this=0x808cfa000, S=0x0,
Fn=0x80a2656f0, LParenLoc=..., ArgExprs=..., RParenLoc=..., ExecConfig=0x0,
IsExecConfig=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4690
#397 0x0000000004ce424e in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::RebuildCallExpr (this=0x7ffffffe81a8,
Callee=0x80a2656f0, LParenLoc=..., Args=..., RParenLoc=..., ExecConfig=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:1838
#398 0x0000000004ce4c56 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCallExpr (this=0x7ffffffe81a8,
E=0x80a224d90) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:7590
#399 0x0000000004cd5922 in (anonymous
namespace)::TemplateInstantiator::TransformCallExpr (this=0x7ffffffe81a8,
CE=0x80a224d90) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:809
#400 0x0000000004cb1843 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr (this=0x7ffffffe81a8,
E=0x80a224d90) at tools/clang/include/clang/AST/StmtNodes.inc:299
#401 0x0000000004ccb092 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDecltypeType (this=0x7ffffffe81a8,
TLB=..., TL=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:4904
#402 0x0000000004ca8b38 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffe81a8, TLB=...,
T=...) at
/share/dim/src/llvm/trunk/tools/clang/include/clang/AST/TypeNodes.def:88
#403 0x0000000004ca7e5f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffe81a8,
DI=0x80a224e38) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3688
#404 0x0000000004ca7c98 in clang::Sema::SubstType (this=0x808cfa000,
T=0x80a224e38, Args=..., Loc=..., Entity=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1480
#405 0x0000000004bd23dd in SubstDefaultTemplateArgument (SemaRef=...,
Template=0x80a2250a0, TemplateLoc=..., RAngleLoc=..., Param=0x80a21cdd0,
Converted=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplate.cpp:3164
#406 0x0000000004bd1e82 in clang::Sema::SubstDefaultTemplateArgumentIfAvailable
(this=0x808cfa000, Template=0x80a2250a0, TemplateLoc=..., RAngleLoc=...,
Param=0x80a21cdd0, Converted=..., HasDefaultArg=@0x7ffffffe88af: true) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplate.cpp:3302
#407 0x0000000004c5d526 in clang::Sema::FinishTemplateArgumentDeduction
(this=0x808cfa000, FunctionTemplate=0x80a2250a0, Deduced=...,
NumExplicitlySpecified=0, Specialization=@0x7ffffffe93a8: 0x0, Info=...,
OriginalCallArgs=0x7ffffffe9020, PartialOverloading=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateDeduction.cpp:2865
#408 0x0000000004c5f7be in clang::Sema::DeduceTemplateArguments
(this=0x808cfa000, FunctionTemplate=0x80a2250a0, ExplicitTemplateArgs=0x0,
Args=..., Specialization=@0x7ffffffe93a8: 0x0, Info=...,
PartialOverloading=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateDeduction.cpp:3447
#409 0x0000000004b05bde in clang::Sema::AddMethodTemplateCandidate
(this=0x808cfa000, MethodTmpl=0x80a2250a0, FoundDecl=...,
ActingContext=0x809ada710, ExplicitTemplateArgs=0x0, ObjectType=...,
ObjectClassification=..., Args=..., CandidateSet=...,
SuppressUserConversions=false, PartialOverloading=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:6127
#410 0x0000000004b0635d in clang::Sema::AddMethodCandidate (this=0x808cfa000,
FoundDecl=..., ObjectType=..., ObjectClassification=..., Args=...,
CandidateSet=..., SuppressUserConversions=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:5955
#411 0x0000000004b1d109 in clang::Sema::BuildCallToObjectOfClassType
(this=0x808cfa000, S=0x0, Obj=0x80a2523d0, LParenLoc=..., Args=...,
RParenLoc=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:11838
#412 0x00000000048af453 in clang::Sema::ActOnCallExpr (this=0x808cfa000, S=0x0,
Fn=0x80a2523d0, LParenLoc=..., ArgExprs=..., RParenLoc=..., ExecConfig=0x0,
IsExecConfig=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4624
#413 0x0000000004ce424e in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::RebuildCallExpr (this=0x7ffffffec638,
Callee=0x80a2523d0, LParenLoc=..., Args=..., RParenLoc=..., ExecConfig=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:1838
#414 0x0000000004ce4c56 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCallExpr (this=0x7ffffffec638,
E=0x809ac9f80) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:7590
#415 0x0000000004cd5922 in (anonymous
namespace)::TemplateInstantiator::TransformCallExpr (this=0x7ffffffec638,
CE=0x809ac9f80) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:809
#416 0x0000000004cb1843 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr (this=0x7ffffffec638,
E=0x809ac9f80) at tools/clang/include/clang/AST/StmtNodes.inc:299
#417 0x0000000004ccb092 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDecltypeType (this=0x7ffffffec638,
TLB=..., TL=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:4904
#418 0x0000000004ca8b38 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffec638, TLB=...,
T=...) at
/share/dim/src/llvm/trunk/tools/clang/include/clang/AST/TypeNodes.def:88
#419 0x0000000004ca7e5f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffec638,
DI=0x80a24ed88) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3688
#420 0x0000000004ca93e7 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffec638, T=...)
at /share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3667
#421 0x0000000004ca9310 in clang::Sema::SubstType (this=0x808cfa000, T=...,
TemplateArgs=..., Loc=..., Entity=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1527
#422 0x0000000004bca900 in clang::Sema::CheckTemplateIdType (this=0x808cfa000,
Name=..., TemplateLoc=..., TemplateArgs=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplate.cpp:2052
#423 0x0000000004cbaf1c in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::RebuildTemplateSpecializationType
(this=0x7ffffffee818, Template=..., TemplateNameLoc=..., TemplateArgs=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:10538
#424 0x0000000004cb9a4b in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType
(this=0x7ffffffee818, TLB=..., TL=..., Template=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:5203
#425 0x0000000004ccc95b in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType
(this=0x7ffffffee818, TLB=..., TL=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:5094
#426 0x0000000004ca8e8f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffee818, TLB=...,
T=...) at
/share/dim/src/llvm/trunk/tools/clang/include/clang/AST/TypeNodes.def:98
#427 0x0000000004ca7e5f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffee818,
DI=0x80a24ed00) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3688
#428 0x0000000004cb72cc in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument
(this=0x7ffffffee818, Input=..., Output=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3423
#429 0x0000000004cbb985 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArguments<clang::TemplateArgumentLocContainerIterator<clang::TemplateSpecializationTypeLoc>
> (this=0x7ffffffee818, First=..., Last=..., Outputs=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3643
#430 0x0000000004cb99d9 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType
(this=0x7ffffffee818, TLB=..., TL=..., Template=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:5195
#431 0x0000000004ccc95b in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType
(this=0x7ffffffee818, TLB=..., TL=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:5094
#432 0x0000000004ca8e8f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffee818, TLB=...,
T=...) at
/share/dim/src/llvm/trunk/tools/clang/include/clang/AST/TypeNodes.def:98
#433 0x0000000004ca7e5f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffee818,
DI=0x80a24ecb8) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3688
#434 0x0000000004ca93e7 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7ffffffee818, T=...)
at /share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3667
#435 0x0000000004ca9310 in clang::Sema::SubstType (this=0x808cfa000, T=...,
TemplateArgs=..., Loc=..., Entity=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1527
#436 0x0000000004bca900 in clang::Sema::CheckTemplateIdType (this=0x808cfa000,
Name=..., TemplateLoc=..., TemplateArgs=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplate.cpp:2052
#437 0x0000000004cbaf1c in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::RebuildTemplateSpecializationType
(this=0x7fffffff0998, Template=..., TemplateNameLoc=..., TemplateArgs=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:10538
#438 0x0000000004cb9a4b in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType
(this=0x7fffffff0998, TLB=..., TL=..., Template=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:5203
#439 0x0000000004ccc95b in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType
(this=0x7fffffff0998, TLB=..., TL=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:5094
#440 0x0000000004ca8e8f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff0998, TLB=...,
T=...) at
/share/dim/src/llvm/trunk/tools/clang/include/clang/AST/TypeNodes.def:98
#441 0x0000000004ca7e5f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff0998,
DI=0x809acc080) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3688
#442 0x0000000004cb72cc in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument
(this=0x7fffffff0998, Input=..., Output=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3423
#443 0x0000000004cbb985 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArguments<clang::TemplateArgumentLocContainerIterator<clang::TemplateSpecializationTypeLoc>
> (this=0x7fffffff0998, First=..., Last=..., Outputs=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3643
#444 0x0000000004cb99d9 in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType
(this=0x7fffffff0998, TLB=..., TL=..., Template=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:5195
#445 0x0000000004ccc95b in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType
(this=0x7fffffff0998, TLB=..., TL=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:5094
#446 0x0000000004ca8e8f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff0998, TLB=...,
T=...) at
/share/dim/src/llvm/trunk/tools/clang/include/clang/AST/TypeNodes.def:98
#447 0x0000000004ca7e5f in clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff0998,
DI=0x809acc4c8) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/TreeTransform.h:3688
#448 0x0000000004ca7c98 in clang::Sema::SubstType (this=0x808cfa000,
T=0x809acc4c8, Args=..., Loc=..., Entity=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1480
#449 0x0000000004bd23dd in SubstDefaultTemplateArgument (SemaRef=...,
Template=0x809acc6e0, TemplateLoc=..., RAngleLoc=..., Param=0x809acb7b0,
Converted=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplate.cpp:3164
#450 0x0000000004bd1e82 in clang::Sema::SubstDefaultTemplateArgumentIfAvailable
(this=0x808cfa000, Template=0x809acc6e0, TemplateLoc=..., RAngleLoc=...,
Param=0x809acb7b0, Converted=..., HasDefaultArg=@0x7fffffff109f: true) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplate.cpp:3302
#451 0x0000000004c5d526 in clang::Sema::FinishTemplateArgumentDeduction
(this=0x808cfa000, FunctionTemplate=0x809acc6e0, Deduced=...,
NumExplicitlySpecified=0, Specialization=@0x7fffffff1b68: 0x0, Info=...,
OriginalCallArgs=0x7fffffff1810, PartialOverloading=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateDeduction.cpp:2865
#452 0x0000000004c5f7be in clang::Sema::DeduceTemplateArguments
(this=0x808cfa000, FunctionTemplate=0x809acc6e0, ExplicitTemplateArgs=0x0,
Args=..., Specialization=@0x7fffffff1b68: 0x0, Info=...,
PartialOverloading=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaTemplateDeduction.cpp:3447
#453 0x0000000004b05f82 in clang::Sema::AddTemplateOverloadCandidate
(this=0x808cfa000, FunctionTemplate=0x809acc6e0, FoundDecl=...,
ExplicitTemplateArgs=0x0, Args=..., CandidateSet=...,
SuppressUserConversions=true, PartialOverloading=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:6178
#454 0x0000000004a5f9d9 in TryUserDefinedConversion (S=..., DestType=...,
Kind=..., Initializer=0x809adae70, Sequence=..., TopLevelOfInitList=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:4300
#455 0x0000000004a5cacd in clang::InitializationSequence::InitializeFrom
(this=0x7fffffff25d0, S=..., Entity=..., Kind=..., Args=...,
TopLevelOfInitList=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:4819
#456 0x0000000004a5be8a in
clang::InitializationSequence::InitializationSequence (this=0x7fffffff25d0,
S=..., Entity=..., Kind=..., Args=..., TopLevelOfInitList=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:4615
#457 0x0000000004a6b41b in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7358
#458 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x809ac9730, Proto=0x809ac96d0,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#459 0x00000000048c1fc2 in clang::Sema::ConvertArgumentsForCall
(this=0x808cfa000, Call=0x80a24ec38, Fn=0x809ad07c8, FDecl=0x809ac9730,
Proto=0x809ac96d0, Args=..., RParenLoc=..., IsExecConfig=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4334
#460 0x0000000004b1c8aa in clang::Sema::BuildCallToMemberFunction
(this=0x808cfa000, S=0x808d368c0, MemExprE=0x809ad07c8, LParenLoc=...,
Args=..., RParenLoc=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaOverload.cpp:11770
#461 0x00000000048af59f in clang::Sema::ActOnCallExpr (this=0x808cfa000,
S=0x808d368c0, Fn=0x809ad07c8, LParenLoc=..., ArgExprs=..., RParenLoc=...,
ExecConfig=0x0, IsExecConfig=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4634
#462 0x000000000440c957 in clang::Parser::ParsePostfixExpressionSuffix
(this=0x808d26400, LHS=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseExpr.cpp:1476
#463 0x00000000044118bc in clang::Parser::ParseCastExpression
(this=0x808d26400, isUnaryExpression=false, isAddressOfOperand=false,
NotCastExpr=@0x7fffffff8c57: false, isTypeCast=clang::Parser::NotTypeCast) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseExpr.cpp:1296
#464 0x000000000440b963 in clang::Parser::ParseCastExpression
(this=0x808d26400, isUnaryExpression=false, isAddressOfOperand=false,
isTypeCast=clang::Parser::NotTypeCast) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseExpr.cpp:437
#465 0x000000000440a701 in clang::Parser::ParseAssignmentExpression
(this=0x808d26400, isTypeCast=clang::Parser::NotTypeCast) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseExpr.cpp:167
#466 0x000000000440a60f in clang::Parser::ParseExpression (this=0x808d26400,
isTypeCast=clang::Parser::NotTypeCast) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseExpr.cpp:121
#467 0x0000000004452a09 in clang::Parser::ParseExprStatement (this=0x808d26400)
at /share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseStmt.cpp:384
#468 0x0000000004451bb4 in
clang::Parser::ParseStatementOrDeclarationAfterAttributes (this=0x808d26400,
Stmts=..., OnlyStatement=false, TrailingElseLoc=0x0, Attrs=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseStmt.cpp:220
#469 0x00000000044510cd in clang::Parser::ParseStatementOrDeclaration
(this=0x808d26400, Stmts=..., OnlyStatement=false, TrailingElseLoc=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseStmt.cpp:106
#470 0x0000000004458233 in clang::Parser::ParseCompoundStatementBody
(this=0x808d26400, isStmtExpr=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseStmt.cpp:953
#471 0x0000000004459028 in clang::Parser::ParseFunctionStatementBody
(this=0x808d26400, Decl=0x809ad0160, BodyScope=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseStmt.cpp:1868
#472 0x00000000043c3f50 in clang::Parser::ParseFunctionDefinition
(this=0x808d26400, D=..., TemplateInfo=..., LateParsedAttrs=0x7fffffff9ec8) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/Parser.cpp:1103
#473 0x00000000043da0a1 in clang::Parser::ParseDeclGroup (this=0x808d26400,
DS=..., Context=0, DeclEnd=0x0, FRI=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseDecl.cpp:1689
#474 0x00000000043c2e5f in clang::Parser::ParseDeclOrFunctionDefInternal
(this=0x808d26400, attrs=..., DS=..., AS=clang::AS_none) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/Parser.cpp:893
#475 0x00000000043c2523 in clang::Parser::ParseDeclarationOrFunctionDefinition
(this=0x808d26400, attrs=..., DS=0x0, AS=clang::AS_none) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/Parser.cpp:909
#476 0x00000000043c1bba in clang::Parser::ParseExternalDeclaration
(this=0x808d26400, attrs=..., DS=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/Parser.cpp:767
#477 0x00000000043c0c2d in clang::Parser::ParseTopLevelDecl (this=0x808d26400,
Result=...) at /share/dim/src/llvm/trunk/tools/clang/lib/Parse/Parser.cpp:569
#478 0x00000000043b9f43 in clang::ParseAST (S=..., PrintStats=false,
SkipFunctionBodies=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Parse/ParseAST.cpp:144
#479 0x00000000030a108a in clang::ASTFrontendAction::ExecuteAction
(this=0x808c540f0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Frontend/FrontendAction.cpp:537
#480 0x0000000003558a60 in clang::CodeGenAction::ExecuteAction
(this=0x808c540f0) at
/share/dim/src/llvm/trunk/tools/clang/lib/CodeGen/CodeGenAction.cpp:733
#481 0x00000000030a0250 in clang::FrontendAction::Execute (this=0x808c540f0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Frontend/FrontendAction.cpp:439
#482 0x0000000003042900 in clang::CompilerInstance::ExecuteAction
(this=0x808c2d140, Act=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Frontend/CompilerInstance.cpp:806
#483 0x000000000322034b in clang::ExecuteCompilerInvocation (Clang=0x808c2d140)
at
/share/dim/src/llvm/trunk/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:222
#484 0x000000000179a6fe in cc1_main (Argv=..., Argv0=0x7fffffffe5c0
"/home/dim/obj/llvm-231588-trunk-freebsd11-amd64-ninja-dbg-1/bin/clang-3.7",
MainAddr=0x178cb30 <GetExecutablePath(char const*, bool)>) at
/share/dim/src/llvm/trunk/tools/clang/tools/driver/cc1_main.cpp:110
#485 0x000000000178e909 in ExecuteCC1Tool (argv=..., Tool=...) at
/share/dim/src/llvm/trunk/tools/clang/tools/driver/driver.cpp:369
#486 0x000000000178d0a8 in main (argc_=45, argv_=0x7fffffffe1d0) at
/share/dim/src/llvm/trunk/tools/clang/tools/driver/driver.cpp:415

E.g, it is endlessly recursing between these:

#15 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x80a234630, Proto=0x80a2345b0,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#16 0x00000000047e5343 in clang::Sema::CompleteConstructorCall
(this=0x808cfa000, Constructor=0x80a234630, ArgsPtr=..., Loc=...,
ConvertedArgs=..., AllowExplicit=false, IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaDeclCXX.cpp:11363
#17 0x0000000004a61bfe in clang::InitializationSequence::Perform
(this=0x7ffffff054d0, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:6039
#18 0x0000000004a6b487 in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7361

and:

#19 0x00000000048c2dc1 in clang::Sema::GatherArgumentsForCall
(this=0x808cfa000, CallLoc=..., FDecl=0x809acfc90, Proto=0x809acfc10,
FirstParam=0, Args=..., AllArgs=...,
CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false,
IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaExpr.cpp:4389
#20 0x00000000047e5343 in clang::Sema::CompleteConstructorCall
(this=0x808cfa000, Constructor=0x809acfc90, ArgsPtr=..., Loc=...,
ConvertedArgs=..., AllowExplicit=false, IsListInitialization=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaDeclCXX.cpp:11363
#21 0x0000000004a68d6a in PerformConstructorInitialization (S=..., Entity=...,
Kind=..., Args=..., Step=..., ConstructorInitRequiresZeroInit=@0x7ffffff07f47:
false, IsListInitialization=false, IsStdInitListInitialization=false,
LBraceLoc=..., RBraceLoc=...) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:5402
#22 0x0000000004a63353 in clang::InitializationSequence::Perform
(this=0x7ffffff08190, S=..., Entity=..., Kind=..., Args=..., ResultType=0x0) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:6265
#23 0x0000000004a6b487 in clang::Sema::PerformCopyInitialization
(this=0x808cfa000, Entity=..., EqualLoc=..., Init=...,
TopLevelOfInitList=false, AllowExplicit=false) at
/share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaInit.cpp:7361

where the FDecl changes from 0x80a234630 to 0x809acfc90, and back again.
Quuxplusone commented 9 years ago
I think all the template meta programming in bind is a massive red herring.
Reduced to ...

struct Bar;
struct Foo {Foo (Bar);};
struct Bar {Bar (const Foo &);};

Bar Quux (volatile Bar &b)
{
  return b;
}

This is invalid code. I'm not sure if the original crash is happening inside
SFINAE or not.  I can go figure that when I've tracked the cause of this crash.
Quuxplusone commented 9 years ago

yeah, dmitry, my money was on recursion because of the suspicious shape of Foo and Bar structs.

Quuxplusone commented 9 years ago
Thanks for investigating.
A pretty silly code faux-pas on my end, but the (initially) traceback-less
crash made it very difficult to find out what went wrong.
It'd be great if this could be fixed so it wouldn't be encountered by others in
the future.