Open Quuxplusone opened 9 years ago
Attached test.zip
(398320 bytes, application/x-zip): Source code & shell script generated by clang - zipped
thanks
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.
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.
yeah, dmitry, my money was on recursion because of the suspicious shape of Foo and Bar structs.
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.
test.zip
(398320 bytes, application/x-zip)