I added the following test: if(inInstantiation) { clang::Sema::SFINAETrap trap(sema); sema.InstantiateFunctionDefinition(d->getParent()->getLocation(), d, true, true); if(trap.hasErrorOccurred()) { return false; } } Now I’m hitting a seg-fault (null pointer) deep inside clang: Program received signal SIGSEGV, Segmentation fault. clang::Scope::getEntity (this=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/Sema/Scope.h:310 310 DeclContext *getEntity() const { return Entity; } (gdb) bt #0 clang::Scope::getEntity (this=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/Sema/Scope.h:310 #1 0x00007ffff535cdaf in clang::Sema::PushOnScopeChains (this=0x6b6e00, D=0x38392c8, S=0x0, AddToContext=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaDecl.cpp:1190 #2 0x00007ffff535ef9a in clang::Sema::LazilyCreateBuiltin (this=0x6b6e00, II=0x69f638, ID=370, S=0x0, ForRedeclaration=false, Loc=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaDecl.cpp:1778 #3 0x00007ffff572247e in LookupBuiltin (S=…, R=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaLookup.cpp:544 #4 0x00007ffff5722240 in clang::Sema::LookupName (this=0x6b6e00, R=…, S=0x0, AllowBuiltinCreation=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaLookup.cpp:1426 #5 0x00007ffff572362c in clang::Sema::LookupParsedName (this=0x6b6e00, R=…, S=0x0, SS=0x7ffffffea958, AllowBuiltinCreation=true, EnteringContext=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaLookup.cpp:1868 #6 0x00007ffff5524491 in clang::Sema::ActOnIdExpression (this=0x6b6e00, S=0x0, SS=…, TemplateKWLoc=…, Id=…, HasTrailingLParen=true, IsAddressOfOperand=false, CCC=std::unique_ptrclang::CorrectionCandidateCallback containing 0x0, IsInlineAsmIdentifier=false, KeywordReplacement=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:2114 #7 0x00007ffff5523d96 in clang::Sema::DefaultVariadicArgumentPromotion (this=0x6b6e00, E=0x38383f0, CT=clang::Sema::VariadicConstructor, FDecl=0x878b20) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:936 #8 0x00007ffff55367c6 in clang::Sema::GatherArgumentsForCall (this=0x6b6e00, CallLoc=…, FDecl=0x878b20, Proto=0x878ad0, FirstParam=0, Args=…, AllArgs=…, CallType=clang::Sema::VariadicConstructor, AllowExplicit=false, IsListInitialization=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:4477 #9 0x00007ffff5426487 in clang::Sema::CompleteConstructorCall (this=0x6b6e00, Constructor=0x878b20, ArgsPtr=…, Loc=…, ConvertedArgs=…, AllowExplicit=false, IsListInitialization=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp:11427 #10 0x00007ffff56f4184 in clang::InitializationSequence::Perform (this=0x7ffffffebff0, S=…, Entity=…, Kind=…, Args=…, ResultType=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaInit.cpp:6189 #11 0x00007ffff56fe47b in clang::Sema::PerformCopyInitialization (this=0x6b6e00, Entity=…, EqualLoc=…, Init=…, TopLevelOfInitList=false, AllowExplicit=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaInit.cpp:7495 #12 0x00007ffff55364e9 in clang::Sema::GatherArgumentsForCall (this=0x6b6e00, CallLoc=…, FDecl=0x3839080, Proto=0x3839010, FirstParam=0, Args=…, AllArgs=…, CallType=clang::Sema::VariadicDoesNotApply, AllowExplicit=false, IsListInitialization=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:4433 #13 0x00007ffff5535c19 in clang::Sema::ConvertArgumentsForCall (this=0x6b6e00, Call=0x3839240, Fn=0x3839228, FDecl=0x3839080, Proto=0x3839010, Args=…, RParenLoc=…, IsExecConfig=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:4378 #14 0x00007ffff5538209 in clang::Sema::BuildResolvedCallExpr (this=0x6b6e00, Fn=0x3839228, NDecl=0x3839080, LParenLoc=…, Args=…, RParenLoc=…, Config=0x0, IsExecConfig=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:4964 #15 0x00007ffff57b4ad2 in FinishOverloadedCallExpr (SemaRef=…, S=0x0, Fn=0x3839190, ULE=0x3837ab8, LParenLoc=…, Args=…, RParenLoc=…, ExecConfig=0x0, CandidateSet=0x7ffffffee548, Best=0x7ffffffee510, OverloadResult=clang::OR_Success, AllowTypoCorrection=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaOverload.cpp:10798 #16 0x00007ffff57b47cd in clang::Sema::BuildOverloadedCallExpr (this=0x6b6e00, S=0x0, Fn=0x3837ab8, ULE=0x3837ab8, LParenLoc=…, Args=…, RParenLoc=…, ExecConfig=0x0, AllowTypoCorrection=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaOverload.cpp:10871 #17 0x00007ffff5525999 in clang::Sema::ActOnCallExpr (this=0x6b6e00, S=0x0, Fn=0x3837ab8, LParenLoc=…, ArgExprs=…, RParenLoc=…, ExecConfig=0x0, IsExecConfig=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:4768 #18 0x00007ffff5975fee in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::RebuildCallExpr (this=0x7fffffff2738, Callee=0x3837ab8, LParenLoc=…, Args=…, RParenLoc=…, ExecConfig=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:1833 #19 0x00007ffff5975f26 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr (this=0x7fffffff2738, E=0x8d8a08) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:7617 #20 0x00007ffff5967982 in (anonymous namespace)::TemplateInstantiator::TransformCallExpr (this=0x7fffffff2738, CE=0x8d8a08) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:823 #21 0x00007ffff595e10a in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr (this=0x7fffffff2738, E=0x8d8a08) at tools/clang/include/clang/AST/StmtNodes.inc:299 #22 0x00007ffff597fbb2 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDecltypeType (this=0x7fffffff2738, TLB=…, TL=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:4922 #23 0x00007ffff5954aa6 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff2738, TLB=…, T=…) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/AST/TypeNodes.def:88 #24 0x00007ffff59539bf in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff2738, DI=0x8d8aa8) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3706 #25 0x00007ffff597404d in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArgument (this=0x7fffffff2738, Input=…, Output=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3441 #26 0x00007ffff597332a in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArguments<clang::TemplateArgumentLocContainerIteratorclang::TemplateSpecializationTypeLoc > (this=0x7fffffff2738, First=…, Last=…, Outputs=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3661 #27 0x00007ffff5971f79 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType (this=0x7fffffff2738, TLB=…, TL=…, Template=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:5213 #28 0x00007ffff5971c34 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTSIInObjectScope (this=0x7fffffff2738, TL=…, ObjectType=…, UnqualLookup=0x0, SS=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3854 #29 0x00007ffff5990278 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTypeInObjectScope (this=0x7fffffff2738, TL=…, ObjectType=…, UnqualLookup=0x0, SS=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3813 #30 0x00007ffff59604c8 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformNestedNameSpecifierLoc (this=0x7fffffff2738, NNS=…, ObjectType=…, FirstQualifierInScope=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3189 #31 0x00007ffff59817be in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDependentNameType (this=0x7fffffff2738, TLB=…, TL=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:5434 #32 0x00007ffff5954f1a in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff2738, TLB=…, T=…) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/AST/TypeNodes.def:101 #33 0x00007ffff59539bf in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff2738, DI=0x8d8cc0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3706 #34 0x00007ffff59537ff in clang::Sema::SubstType (this=0x6b6e00, T=0x8d8cc0, Args=…, Loc=…, Entity=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1472 #35 0x00007ffff59581e7 in clang::Sema::SubstBaseSpecifiers (this=0x6b6e00, Instantiation=0x3837850, Pattern=0x8d8440, TemplateArgs=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1810 #36 0x00007ffff5958675 in clang::Sema::InstantiateClass (this=0x6b6e00, PointOfInstantiation=…, Instantiation=0x3837850, Pattern=0x8d8440, TemplateArgs=…, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1971 #37 0x00007ffff595a361 in clang::Sema::InstantiateClassTemplateSpecialization (this=0x6b6e00, PointOfInstantiation=…, ClassTemplateSpec=0x3837850, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:2427 #38 0x00007ffff5a157c1 in clang::Sema::RequireCompleteTypeImpl (this=0x6b6e00, Loc=…, T=…, Diagnoser=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaType.cpp:5290 #39 0x00007ffff5a150f6 in clang::Sema::RequireCompleteType (this=0x6b6e00, Loc=…, T=…, Diagnoser=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaType.cpp:5117 #40 0x00007ffff52aa25a in clang::Sema::RequireCompleteTypeclang::SourceRange (this=0x6b6e00, Loc=…, T=…, DiagID=2256, Args=…) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/Sema/Sema.h:1303 #41 0x00007ffff53ff108 in clang::Sema::CheckBaseSpecifier (this=0x6b6e00, Class=0x38362d8, SpecifierRange=…, Virtual=false, Access=clang::AS_public, TInfo=0x38379e0, EllipsisLoc=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp:1454 #42 0x00007ffff595828a in clang::Sema::SubstBaseSpecifiers (this=0x6b6e00, Instantiation=0x38362d8, Pattern=0x8d94d8, TemplateArgs=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1822 #43 0x00007ffff5958675 in clang::Sema::InstantiateClass (this=0x6b6e00, PointOfInstantiation=…, Instantiation=0x38362d8, Pattern=0x8d94d8, TemplateArgs=…, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1971 #44 0x00007ffff595a361 in clang::Sema::InstantiateClassTemplateSpecialization (this=0x6b6e00, PointOfInstantiation=…, ClassTemplateSpec=0x38362d8, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:2427 #45 0x00007ffff5a157c1 in clang::Sema::RequireCompleteTypeImpl (this=0x6b6e00, Loc=…, T=…, Diagnoser=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaType.cpp:5290 #46 0x00007ffff5a150f6 in clang::Sema::RequireCompleteType (this=0x6b6e00, Loc=…, T=…, Diagnoser=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaType.cpp:5117 #47 0x00007ffff52aa25a in clang::Sema::RequireCompleteTypeclang::SourceRange (this=0x6b6e00, Loc=…, T=…, DiagID=2259, Args=…) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/Sema/Sema.h:1303 #48 0x00007ffff52a5c38 in clang::Sema::RequireCompleteDeclContext (this=0x6b6e00, SS=…, DC=0x3836310) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp:212 #49 0x00007ffff552c8ec in clang::Sema::BuildQualifiedDeclarationNameExpr (this=0x6b6e00, SS=…, NameInfo=…, IsAddressOfOperand=false, RecoveryTSI=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:2294 #50 0x00007ffff5976d14 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::RebuildDependentScopeDeclRefExpr (this=0x7fffffff75b8, QualifierLoc=…, TemplateKWLoc=…, NameInfo=…, TemplateArgs=0x0, IsAddressOfOperand=false, RecoveryTSI=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:2402 #51 0x00007ffff5976ac0 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDependentScopeDeclRefExpr (this=0x7fffffff75b8, E=0x7d1a50, IsAddressOfOperand=false, RecoveryTSI=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:8997 #52 0x00007ffff5969433 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDependentScopeDeclRefExpr (this=0x7fffffff75b8, E=0x7d1a50) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:8963 #53 0x00007ffff595e47c in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr (this=0x7fffffff75b8, E=0x7d1a50) at tools/clang/include/clang/AST/StmtNodes.inc:433 #54 0x00007ffff59743e4 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArgument (this=0x7fffffff75b8, Input=…, Output=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3480 #55 0x00007ffff597332a in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArguments<clang::TemplateArgumentLocContainerIteratorclang::TemplateSpecializationTypeLoc > (this=0x7fffffff75b8, First=…, Last=…, Outputs=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3661 #56 0x00007ffff5971f79 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType (this=0x7fffffff75b8, TLB=…, TL=…, Template=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:5213 #57 0x00007ffff598143b in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType (this=0x7fffffff75b8, TLB=…, TL=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:5112 #58 0x00007ffff5954dfd in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff75b8, TLB=…, T=…) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/AST/TypeNodes.def:98 #59 0x00007ffff59539bf in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType (this=0x7fffffff75b8, DI=0x7d1c48) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:3706 #60 0x00007ffff59537ff in clang::Sema::SubstType (this=0x6b6e00, T=0x7d1c48, Args=…, Loc=…, Entity=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1472 #61 0x00007ffff59581e7 in clang::Sema::SubstBaseSpecifiers (this=0x6b6e00, Instantiation=0x3836030, Pattern=0x7d1578, TemplateArgs=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1810 #62 0x00007ffff5958675 in clang::Sema::InstantiateClass (this=0x6b6e00, PointOfInstantiation=…, Instantiation=0x3836030, Pattern=0x7d1578, TemplateArgs=…, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1971 #63 0x00007ffff595a361 in clang::Sema::InstantiateClassTemplateSpecialization (this=0x6b6e00, PointOfInstantiation=…, ClassTemplateSpec=0x3836030, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:2427 #64 0x00007ffff5a157c1 in clang::Sema::RequireCompleteTypeImpl (this=0x6b6e00, Loc=…, T=…, Diagnoser=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaType.cpp:5290 #65 0x00007ffff5a150f6 in clang::Sema::RequireCompleteType (this=0x6b6e00, Loc=…, T=…, Diagnoser=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaType.cpp:5117 #66 0x00007ffff52aa25a in clang::Sema::RequireCompleteTypeclang::SourceRange (this=0x6b6e00, Loc=…, T=…, DiagID=2256, Args=…) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/Sema/Sema.h:1303 #67 0x00007ffff53ff108 in clang::Sema::CheckBaseSpecifier (this=0x6b6e00, Class=0x3835810, SpecifierRange=…, Virtual=false, Access=clang::AS_public, TInfo=0x38361b0, EllipsisLoc=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp:1454 #68 0x00007ffff595828a in clang::Sema::SubstBaseSpecifiers (this=0x6b6e00, Instantiation=0x3835810, Pattern=0x7d1e20, TemplateArgs=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1822 #69 0x00007ffff5958675 in clang::Sema::InstantiateClass (this=0x6b6e00, PointOfInstantiation=…, Instantiation=0x3835810, Pattern=0x7d1e20, TemplateArgs=…, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1971 #70 0x00007ffff595a361 in clang::Sema::InstantiateClassTemplateSpecialization (this=0x6b6e00, PointOfInstantiation=…, ClassTemplateSpec=0x3835810, TSK=clang::TSK_ImplicitInstantiation, Complain=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:2427 #71 0x00007ffff5a157c1 in clang::Sema::RequireCompleteTypeImpl (this=0x6b6e00, Loc=…, T=…, Diagnoser=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaType.cpp:5290 #72 0x00007ffff5a150f6 in clang::Sema::RequireCompleteType (this=0x6b6e00, Loc=…, T=…, Diagnoser=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaType.cpp:5117 #73 0x00007ffff52aa25a in clang::Sema::RequireCompleteTypeclang::SourceRange (this=0x6b6e00, Loc=…, T=…, DiagID=2259, Args=…) at /home/peter/Programming/llvm/llvm/tools/clang/include/clang/Sema/Sema.h:1303 #74 0x00007ffff52a5c38 in clang::Sema::RequireCompleteDeclContext (this=0x6b6e00, SS=…, DC=0x3835848) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp:212 #75 0x00007ffff552c8ec in clang::Sema::BuildQualifiedDeclarationNameExpr (this=0x6b6e00, SS=…, NameInfo=…, IsAddressOfOperand=false, RecoveryTSI=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExpr.cpp:2294 #76 0x00007ffff5976d14 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::RebuildDependentScopeDeclRefExpr (this=0x7fffffffbac8, QualifierLoc=…, TemplateKWLoc=…, NameInfo=…, TemplateArgs=0x0, IsAddressOfOperand=false, RecoveryTSI=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:2402 #77 0x00007ffff5976ac0 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDependentScopeDeclRefExpr (this=0x7fffffffbac8, E=0x9a8628, IsAddressOfOperand=false, RecoveryTSI=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:8997 #78 0x00007ffff5969433 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDependentScopeDeclRefExpr (this=0x7fffffffbac8, E=0x9a8628) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:8963 #79 0x00007ffff595e47c in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr (this=0x7fffffffbac8, E=0x9a8628) at tools/clang/include/clang/AST/StmtNodes.inc:433 #80 0x00007ffff596339c in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformBinaryOperator (this=0x7fffffffbac8, E=0x9a8818) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:7704 #81 0x00007ffff595dca3 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr (this=0x7fffffffbac8, E=0x9a8818) at tools/clang/include/clang/AST/StmtNodes.inc:157 #82 0x00007ffff5955af2 in clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExceptionSpec (this=0x7fffffffbac8, Loc=…, ESI=…, Exceptions=…, Changed=@0x7fffffffba7f: false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/TreeTransform.h:4697 #83 0x00007ffff59559ea in clang::Sema::SubstExceptionSpec (this=0x6b6e00, New=0x7ffff0b023a8, Proto=0x9a8840, Args=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp:1611 #84 0x00007ffff59aca2b in clang::Sema::InstantiateExceptionSpec (this=0x6b6e00, PointOfInstantiation=…, Decl=0x7ffff0b023a8) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3193 #85 0x00007ffff5518b88 in clang::Sema::ResolveExceptionSpec (this=0x6b6e00, Loc=…, FPT=0x7ffff0b02470) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp:162 #86 0x00007ffff53839f5 in clang::Sema::ActOnStartOfFunctionDef (this=0x6b6e00, FnBodyScope=0x0, D=0x7ffff0b023a8) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaDecl.cpp:10475 #87 0x00007ffff59ad779 in clang::Sema::InstantiateFunctionDefinition (this=0x6b6e00, PointOfInstantiation=…, Function=0x7ffff0b023a8, Recursive=true, DefinitionRequired=true) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:3449 #88 0x0000000000428f79 in QuaffVisitor::CanBeSafeToHandle (this=0x694b30, d=0x7ffff0b023a8, inInstantiation=true) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/quaff-visitor.cc:179 #89 0x000000000042a46f in QuaffVisitor::VisitCXXMethod (this=0x694b30, d=0x7ffff0b023a8, instantiation=true) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/quaff-visitor.cc:388 #90 0x000000000040dd50 in Walker::Traverse (this=0x694c40, d=0x7ffff0b023a8) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:64 #91 0x000000000040e28d in Walker::TraverseCXXRecord (this=0x694c40, d=0x7ffff0bf1218) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:96 #92 0x000000000040df33 in Walker::TraverseClassTemplate (this=0x694c40, d=0x96d750) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:109 #93 0x000000000040dbce in Walker::Traverse (this=0x694c40, d=0x96d750) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:45 #94 0x000000000040e0b2 in Walker::TraverseNamespace (this=0x694c40, d=0x95ea20) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:119 #95 0x000000000040dc25 in Walker::Traverse (this=0x694c40, d=0x95ea20) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:51 #96 0x000000000040e0b2 in Walker::TraverseNamespace (this=0x694c40, d=0x95e9b8) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:119 #97 0x000000000040dc25 in Walker::Traverse (this=0x694c40, d=0x95e9b8) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:51 #98 0x000000000040d8d2 in Walker::TraverseTranslationUnit (this=0x694c40, d=0x693bd0) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/walker.cc:17 #99 0x000000000040d054 in Consumer<Options, QuaffVisitor>::HandleTranslationUnit (this=0x694b20, context=…) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/consumer.hh:21 #100 0x00007ffff1f9dab6 in clang::ParseAST (S=…, PrintStats=false, SkipFunctionBodies=false) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Parse/ParseAST.cpp:151 #101 0x00007ffff610824f in clang::ASTFrontendAction::ExecuteAction (this=0x660f50) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:536 #102 0x00007ffff6107d50 in clang::FrontendAction::Execute (this=0x660f50) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:439 #103 0x00007ffff60b4f5f in clang::CompilerInstance::ExecuteAction (this=0x7fffffffd368, Act=…) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:814 #104 0x00007ffff77bca6e in clang::tooling::FrontendActionFactory::runInvocation (this=0x7fffffffde88, Invocation=0x6612a0, Files=0x65f4f0, DiagConsumer=0x0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Tooling/Tooling.cpp:272 #105 0x00007ffff77bc979 in clang::tooling::ToolInvocation::runInvocation (this=0x7fffffffdb80, BinaryName=0x65fec8 “/home/peter/Programming/llvm/clang/bin/quaff”, Compilation=0x65aae0, Invocation=0x6612a0) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Tooling/Tooling.cpp:249 #106 0x00007ffff77bc211 in clang::tooling::ToolInvocation::run (this=0x7fffffffdb80) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Tooling/Tooling.cpp:235 #107 0x00007ffff77bd3aa in clang::tooling::ClangTool::run (this=0x7fffffffdea8, Action=0x7fffffffde88) at /home/peter/Programming/llvm/llvm/tools/clang/lib/Tooling/Tooling.cpp:364 #108 0x000000000040873d in main (argc=5, argv=0x7fffffffe178) at /home/peter/Programming/llvm/llvm/tools/clang/tools/extra/quaff/main.cc:149