Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assertion 'Pack expansion without unexpanded packs?' failed #28461

Open
llvmbot opened this issue Jun 11, 2016 · 5 comments
Open

Assertion 'Pack expansion without unexpanded packs?' failed #28461

llvmbot opened this issue Jun 11, 2016 · 5 comments
Assignees
Labels
bugzilla Issues migrated from bugzilla c++14 clang:frontend Language frontend issues, e.g. anything involving "Sema" confirmed Verified by a second party crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@llvmbot
Copy link
Collaborator

llvmbot commented Jun 11, 2016

Bugzilla Link 28087
Version 3.8
OS Linux
Attachments invalid code that leads to the assertion failure
Reporter LLVM Bugzilla Contributor
CC @majnemer

Extended Description

% clang++ -w -std=c++14 secondorderassemblertest-57319f.ii
clang-3.8: /tmp/tmp.M49CMLsFyB/llvm-3.8.0.src/tools/clang/lib/Sema/SemaTemplateDeduction.cpp:609: {anonymous}::PackDeductionScope::PackDeductionScope(clang::Sema&, clang::TemplateParameterList*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, clang::sema::TemplateDeductionInfo&, clang::TemplateArgument): Assertion `!Packs.empty() && "Pack expansion without unexpanded packs?"' failed.
#&#8203;0 0x0000000001c014e5 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x1c014e5)
#&#8203;1 0x0000000001bff4a6 llvm::sys::RunSignalHandlers() (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x1bff4a6)
#&#8203;2 0x0000000001bff6c4 SignalHandler(int) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x1bff6c4)
#&#8203;3 0x00007fbde23668d0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0xf8d0)
#&#8203;4 0x00007fbde15a4067 gsignal /build/glibc-uPj9cH/glibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0
#&#8203;5 0x00007fbde15a5448 abort /build/glibc-uPj9cH/glibc-2.19/stdlib/abort.c:91:0
#&#8203;6 0x00007fbde159d266 __assert_fail_base /build/glibc-uPj9cH/glibc-2.19/assert/assert.c:92:0
#&#8203;7 0x00007fbde159d312 (/lib/x86_64-linux-gnu/libc.so.6+0x2e312)
#&#8203;8 0x0000000002a796b3 (anonymous namespace)::PackDeductionScope::PackDeductionScope(clang::Sema&, clang::TemplateParameterList*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, clang::sema::TemplateDeductionInfo&, clang::TemplateArgument) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a796b3)
#&#8203;9 0x0000000002a8cf8e clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a8cf8e)
#&#8203;10 0x00000000029d9cea clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*, clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29d9cea)
#&#8203;11 0x00000000029d9f00 clang::Sema::AddMethodCandidate(clang::DeclAccessPair, clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29d9f00)
#&#8203;12 0x00000000029eefb6 clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29eefb6)
#&#8203;13 0x00000000028b40db clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28b40db)
#&#8203;14 0x0000000002ab152f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab152f)
#&#8203;15 0x0000000002aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283)
#&#8203;16 0x0000000002aad848 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aad848)
#&#8203;17 0x0000000002aada91 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aada91)
#&#8203;18 0x0000000002abd625 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd625)
#&#8203;19 0x0000000002abf51c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf51c)
#&#8203;20 0x0000000002abf62b clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf62b)
#&#8203;21 0x0000000002abd983 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd983)
#&#8203;22 0x0000000002ac1698 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac1698)
#&#8203;23 0x0000000002ae0d02 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ae0d02)
#&#8203;24 0x0000000002a742c5 clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a742c5)
#&#8203;25 0x00000000028a3c92 clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, clang::SourceLocation, clang::ObjCInterfaceDecl const*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a3c92)
#&#8203;26 0x00000000029ea839 FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ea839)
#&#8203;27 0x00000000029eadd1 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29eadd1)
#&#8203;28 0x00000000028b417a clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28b417a)
#&#8203;29 0x0000000002ab152f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab152f)
#&#8203;30 0x0000000002aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283)
#&#8203;31 0x0000000002aad848 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aad848)
#&#8203;32 0x0000000002aada91 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aada91)
#&#8203;33 0x0000000002abd625 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd625)
#&#8203;34 0x0000000002abf51c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf51c)
#&#8203;35 0x0000000002abf62b clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf62b)
#&#8203;36 0x0000000002abd983 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd983)
#&#8203;37 0x0000000002ac1698 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac1698)
#&#8203;38 0x0000000002ae0d02 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ae0d02)
#&#8203;39 0x0000000002a742c5 clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a742c5)
#&#8203;40 0x00000000028a3c92 clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, clang::SourceLocation, clang::ObjCInterfaceDecl const*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a3c92)
#&#8203;41 0x00000000029ea839 FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ea839)
#&#8203;42 0x00000000029eadd1 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29eadd1)
#&#8203;43 0x00000000028b417a clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28b417a)
#&#8203;44 0x0000000002ab152f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab152f)
#&#8203;45 0x0000000002aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283)
#&#8203;46 0x0000000002aad848 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aad848)
#&#8203;47 0x0000000002aad298 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExprs(clang::Expr* const*, unsigned int, bool, llvm::SmallVectorImpl<clang::Expr*>&, bool*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aad298)
#&#8203;48 0x0000000002ab14e4 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab14e4)
#&#8203;49 0x0000000002aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283)
#&#8203;50 0x0000000002ab3c57 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDecltypeType(clang::TypeLocBuilder&, clang::DecltypeTypeLoc) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab3c57)
#&#8203;51 0x0000000002ab4704 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab4704)
#&#8203;52 0x0000000002ace05e clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ace05e)
#&#8203;53 0x0000000002ad423a clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*, llvm::SmallVectorImpl<clang::ParmVarDecl*>&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ad423a)
#&#8203;54 0x0000000002ae293c clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*, clang::TemplateParameterList*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ae293c)
#&#8203;55 0x0000000002add41f clang::TemplateDeclInstantiator::VisitFunctionTemplateDecl(clang::FunctionTemplateDecl*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2add41f)
#&#8203;56 0x0000000002ab634e clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab634e)
#&#8203;57 0x0000000002acf1f5 clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2acf1f5)
#&#8203;58 0x0000000002b01ee8 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2b01ee8)
#&#8203;59 0x0000000002b02125 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2b02125)
#&#8203;60 0x0000000002b02303 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, unsigned int) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2b02303)
#&#8203;61 0x00000000028ee502 evaluateTypeTrait(clang::Sema&, clang::TypeTrait, clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>, clang::SourceLocation) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28ee502)
#&#8203;62 0x00000000028f01b3 clang::Sema::BuildTypeTrait(clang::TypeTrait, clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>, clang::SourceLocation) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28f01b3)
#&#8203;63 0x0000000002ac98d1 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTypeTraitExpr(clang::TypeTraitExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac98d1)
#&#8203;64 0x0000000002aac45e clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac45e)
#&#8203;65 0x0000000002ac1745 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc const&, clang::TemplateArgumentLoc&, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac1745)
#&#8203;66 0x0000000002ac4d05 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&, clang::TemplateSpecializationTypeLoc, clang::TemplateName) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac4d05)
#&#8203;67 0x0000000002ab52be clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab52be)
#&#8203;68 0x0000000002ab5744 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab5744)
#&#8203;69 0x0000000002ab5892 clang::Sema::SubstType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab5892)
#&#8203;70 0x0000000002ab5c1d clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab5c1d)
#&#8203;71 0x0000000002ab61bc clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab61bc)
#&#8203;72 0x0000000002acf1f5 clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2acf1f5)
#&#8203;73 0x0000000002b01ee8 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2b01ee8)
#&#8203;74 0x0000000002b02125 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2b02125)
#&#8203;75 0x00000000028ddda1 clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28ddda1)
#&#8203;76 0x0000000002aba10c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCXXUnresolvedConstructExpr(clang::CXXUnresolvedConstructExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aba10c)
#&#8203;77 0x0000000002aac297 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac297)
#&#8203;78 0x0000000002aad848 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aad848)
#&#8203;79 0x0000000002aada91 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aada91)
#&#8203;80 0x0000000002abd625 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd625)
#&#8203;81 0x0000000002abf51c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf51c)
#&#8203;82 0x0000000002abf62b clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf62b)
#&#8203;83 0x0000000002abd983 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd983)
#&#8203;84 0x0000000002ac1698 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac1698)
#&#8203;85 0x0000000002ae0d02 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ae0d02)
#&#8203;86 0x00000000028a4a92 clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a4a92)
#&#8203;87 0x00000000028a7d2c MarkExprReferenced(clang::Sema&, clang::SourceLocation, clang::Decl*, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a7d2c)
#&#8203;88 0x00000000028a7e8a clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a7e8a)
#&#8203;89 0x00000000029ca5fd clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ca5fd)
#&#8203;90 0x00000000029ea85e FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ea85e)
#&#8203;91 0x00000000029eadd1 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29eadd1)
#&#8203;92 0x00000000028b417a clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28b417a)
#&#8203;93 0x0000000002ab152f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab152f)
#&#8203;94 0x0000000002aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283)
#&#8203;95 0x0000000002aae988 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformBinaryOperator(clang::BinaryOperator*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aae988)
#&#8203;96 0x0000000002aac3e4 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac3e4)
#&#8203;97 0x0000000002ac1745 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc const&, clang::TemplateArgumentLoc&, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac1745)
#&#8203;98 0x0000000002ac4d05 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&, clang::TemplateSpecializationTypeLoc, clang::TemplateName) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac4d05)
#&#8203;99 0x0000000002abc743 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTSIInObjectScope(clang::TypeLoc, clang::QualType, clang::NamedDecl*, clang::CXXScopeSpec&) [clone .isra.3317] (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abc743)
#&#8203;100 0x0000000002abd044 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformNestedNameSpecifierLoc(clang::NestedNameSpecifierLoc, clang::QualType, clang::NamedDecl*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd044)
#&#8203;101 0x0000000002ab4cf8 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab4cf8)
#&#8203;102 0x0000000002ab5744 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab5744)
#&#8203;103 0x0000000002ab769a clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::QualType) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab769a)
#&#8203;104 0x0000000002ab8da4 clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab8da4)
#&#8203;105 0x0000000002a3bd12 clang::Sema::CheckTemplateArgument(clang::NamedDecl*, clang::TemplateArgumentLoc&, clang::NamedDecl*, clang::SourceLocation, clang::SourceLocation, unsigned int, llvm::SmallVectorImpl<clang::TemplateArgument>&, clang::Sema::CheckTemplateArgumentKind) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a3bd12)
#&#8203;106 0x0000000002a82ae0 clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a82ae0)
#&#8203;107 0x0000000002a8cbe2 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a8cbe2)
#&#8203;108 0x00000000029dab6d clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29dab6d)
#&#8203;109 0x00000000029dc5b7 clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29dc5b7)
#&#8203;110 0x00000000029dc8f8 clang::Sema::buildOverloadedCallSet(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::OverloadCandidateSet*, clang::ActionResult<clang::Expr*, true>*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29dc8f8)
#&#8203;111 0x00000000029ead5d clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ead5d)
#&#8203;112 0x00000000028b417a clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28b417a)
#&#8203;113 0x0000000002ab152f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab152f)
#&#8203;114 0x0000000002aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283)
#&#8203;115 0x0000000002aad848 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aad848)
#&#8203;116 0x0000000002aada91 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aada91)
#&#8203;117 0x0000000002abd625 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd625)
#&#8203;118 0x0000000002abf51c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf51c)
#&#8203;119 0x0000000002abf62b clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf62b)
#&#8203;120 0x0000000002abd983 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd983)
#&#8203;121 0x0000000002ac1698 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac1698)
#&#8203;122 0x0000000002ae0d02 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ae0d02)
#&#8203;123 0x00000000028a4a92 clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a4a92)
#&#8203;124 0x00000000028a7d2c MarkExprReferenced(clang::Sema&, clang::SourceLocation, clang::Decl*, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a7d2c)
#&#8203;125 0x00000000028a7e8a clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a7e8a)
#&#8203;126 0x00000000029ca5fd clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ca5fd)
#&#8203;127 0x00000000029ea85e FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ea85e)
#&#8203;128 0x00000000029eadd1 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29eadd1)
#&#8203;129 0x00000000028b417a clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28b417a)
#&#8203;130 0x0000000002ab152f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab152f)
#&#8203;131 0x0000000002aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283)
#&#8203;132 0x0000000002aad848 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aad848)
#&#8203;133 0x0000000002aada91 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aada91)
#&#8203;134 0x0000000002abd625 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd625)
#&#8203;135 0x0000000002abf51c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf51c)
#&#8203;136 0x0000000002abf62b clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf62b)
#&#8203;137 0x0000000002abd983 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd983)
#&#8203;138 0x0000000002ac1698 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac1698)
#&#8203;139 0x0000000002ae0d02 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ae0d02)
#&#8203;140 0x00000000028a4a92 clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a4a92)
#&#8203;141 0x00000000028a7d2c MarkExprReferenced(clang::Sema&, clang::SourceLocation, clang::Decl*, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a7d2c)
#&#8203;142 0x00000000028a7e8a clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28a7e8a)
#&#8203;143 0x00000000029ca5fd clang::Sema::FixOverloadedFunctionReference(clang::Expr*, clang::DeclAccessPair, clang::FunctionDecl*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ca5fd)
#&#8203;144 0x00000000029ea85e FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29ea85e)
#&#8203;145 0x00000000029eadd1 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29eadd1)
#&#8203;146 0x00000000028b417a clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28b417a)
#&#8203;147 0x0000000002ab152f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab152f)
#&#8203;148 0x0000000002aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283)
#&#8203;149 0x0000000002ab3da8 clang::Sema::SubstExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab3da8)
#&#8203;150 0x0000000002ad297f clang::TemplateDeclInstantiator::VisitStaticAssertDecl(clang::StaticAssertDecl*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ad297f)
#&#8203;151 0x0000000002add8f2 clang::Sema::SubstDecl(clang::Decl*, clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2add8f2)
#&#8203;152 0x0000000002aa9d3c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformDeclStmt(clang::DeclStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aa9d3c)
#&#8203;153 0x0000000002abd933 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd933)
#&#8203;154 0x0000000002abf51c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf51c)
#&#8203;155 0x0000000002abf62b clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf62b)
#&#8203;156 0x0000000002abd983 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd983)
#&#8203;157 0x0000000002ac1698 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ac1698)
#&#8203;158 0x0000000002ae0d02 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ae0d02)
#&#8203;159 0x0000000002aded08 clang::Sema::PerformPendingInstantiations(bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aded08)
#&#8203;160 0x0000000002726e55 clang::Sema::ActOnEndOfTranslationUnit() (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2726e55)
#&#8203;161 0x000000000255cc21 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x255cc21)
#&#8203;162 0x0000000002554c3b clang::ParseAST(clang::Sema&, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2554c3b)
#&#8203;163 0x000000000226f6fb clang::CodeGenAction::ExecuteAction() (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x226f6fb)
#&#8203;164 0x0000000001fd7096 clang::FrontendAction::Execute() (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x1fd7096)
#&#8203;165 0x0000000001fb0786 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x1fb0786)
#&#8203;166 0x000000000205d723 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x205d723)
#&#8203;167 0x0000000000aa3bf8 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0xaa3bf8)
#&#8203;168 0x0000000000a630f7 main (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0xa630f7)
#&#8203;169 0x00007fbde1590b45 __libc_start_main /build/glibc-uPj9cH/glibc-2.19/csu/libc-start.c:321:0
#&#8203;170 0x0000000000a9fdf4 _start (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0xa9fdf4)
Stack dump:
0.	Program arguments: /home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name secondorderassemblertest-57319f.ii -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -resource-dir /home/mi/pipping/dune/inst/clang-3.8.0/bin/../lib/clang/3.8.0 -w -std=c++14 -fdeprecated-macro -fdebug-compilation-dir /tmp/elias -ferror-limit 19 -fmessage-length 90 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/secondorderassemblertest-57319f-cae533.o -x c++-cpp-output secondorderassemblertest-57319f.ii 
1.	<eof> parser at end of file
2.	secondorderassemblertest-57319f.ii:480:3: instantiating function definition 'SecondOrderOperatorAssembler'
clang-3.8: error: unable to execute command: Aborted
clang-3.8: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 3.8.0 (tags/RELEASE_380/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/mi/pipping/dune/inst/clang/bin
clang-3.8: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
clang-3.8: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
%
@majnemer
Copy link
Mannequin

majnemer mannequin commented Jun 11, 2016

reduced:

template <typename F>
auto apply(F f) {
  f();
}
template <class...>
struct S {
  template <int>
  auto f(decltype(apply([](auto...) {})));
};
S<> s;

@llvmbot
Copy link
Collaborator Author

llvmbot commented Jul 15, 2016

It might be worth mentioning that something has been fixed here (which could be turned into a test case):

One reduction of the code I attached is

<<SNIP
template <class K, int ROWS, int COLS> class FieldMatrix;
template <class GridType, class TrialLocalFE, class AnsatzLocalFE, typename T>
class LocalOperatorAssembler {
}
template <class GridType, class TrialLocalFE, class AnsatzLocalFE,
class Contraction, class MB = Dune::FieldMatrix<double, 1, 1>,
class SecondOrderOperatorAssembler
: public LocalOperatorAssembler<GridType, TrialLocalFE, AnsatzLocalFE, MB> {
SecondOrderOperatorAssembler(const Contraction &contraction, bool isSymmetric,
FunctionTypes... functions)
: contraction_(contraction), isSymmetric_(isSymmetric),
coefficientQuadKey_(coefficientQuadKey), functions_(functions...) {
<<SNAP

This leads to segfaults with:

Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.6.0

but not with

Apple LLVM version 8.0.0 (clang-800.0.31)
Target: x86_64-apple-darwin15.6.0

and also not with

clang version 3.8.0 (tags/RELEASE_380/final)
Target: x86_64-unknown-linux-gnu

or

clang version 3.8.1 (tags/RELEASE_381/final)
Target: x86_64-unknown-linux-gnu

The reduction by David Majnemer, meanwhile, continues to make all of them segfault.

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 10, 2021
@mizvekov mizvekov self-assigned this Jun 21, 2022
@mizvekov
Copy link
Contributor

@EugeneZelenko EugeneZelenko added the clang:frontend Language frontend issues, e.g. anything involving "Sema" label Jun 21, 2022
@llvmbot
Copy link
Collaborator Author

llvmbot commented Jun 21, 2022

@llvm/issue-subscribers-clang-frontend

@shafik
Copy link
Collaborator

shafik commented Jun 15, 2023

Still crashes on trunk: https://godbolt.org/z/Mb5xWq6os

Assertion:

clang++: /root/llvm-project/clang/lib/Sema/SemaTemplateDeduction.cpp:769:
unsigned int {anonymous}::PackDeductionScope::addPacks(clang::TemplateArgument):
Assertion `!Packs.empty() && "Pack expansion without unexpanded packs?"' failed.

Backtrace:

PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.	Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics <source>
1.	<source>:10:6: current parser token ';'
2.	<source>:6:8: instantiating class definition 'S<>'
3.	<source>:2:6: instantiating function definition 'apply<S<>::(lambda at <source>:8:25)>'
 #0 0x0000557590660def llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3c62def)
 #1 0x000055759065eb5c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3c60b5c)
 #2 0x00005575905a8b18 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f742bdb6420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007f742b88300b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #5 0x00007f742b862859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #6 0x00007f742b862729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #7 0x00007f742b873fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x00005575938ff4e9 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f014e9)
 #9 0x0000557593706ebc clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*, clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, clang::OverloadCandidateParamOrder) (.constprop.0) SemaOverload.cpp:0:0
#10 0x0000557593707317 clang::Sema::AddMethodCandidate(clang::DeclAccessPair, clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, clang::OverloadCandidateParamOrder) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6d09317)
#11 0x0000557593722dfe clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6d24dfe)
#12 0x00005575933ab565 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x69ad565)
#13 0x00005575933b032b clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x69b232b)
#14 0x000055759393d720 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) SemaTemplateInstantiate.cpp:0:0
#15 0x00005575939337aa clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#16 0x000055759396d2af clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*, clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::StmtDiscardKind) SemaTemplateInstantiate.cpp:0:0
#17 0x000055759396e519 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) SemaTemplateInstantiate.cpp:0:0
#18 0x000055759397166e clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f7366e)
#19 0x00005575939c21f8 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6fc41f8)
#20 0x0000557592f46465 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6548465)
#21 0x00005575938a6d5a clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6ea8d5a)
#22 0x0000557593338252 clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x693a252)
#23 0x0000557593718b6f FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) SemaOverload.cpp:0:0
#24 0x00005575937196f2 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6d1b6f2)
#25 0x00005575933ab420 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x69ad420)
#26 0x00005575933b032b clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x69b232b)
#27 0x000055759393d720 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) SemaTemplateInstantiate.cpp:0:0
#28 0x00005575939337aa clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#29 0x00005575939439a8 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) SemaTemplateInstantiate.cpp:0:0
#30 0x000055759394976f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) SemaTemplateInstantiate.cpp:0:0
#31 0x000055759395212e clang::Sema::SubstType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f5412e)
#32 0x000055759395bb5d clang::Sema::SubstParmVarDecl(clang::ParmVarDecl*, clang::MultiLevelTemplateArgumentList const&, int, std::optional<unsigned int>, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f5db5d)
#33 0x000055759395cad0 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformFunctionTypeParams(clang::SourceLocation, llvm::ArrayRef<clang::ParmVarDecl*>, clang::QualType const*, clang::FunctionType::ExtParameterInfo const*, llvm::SmallVectorImpl<clang::QualType>&, llvm::SmallVectorImpl<clang::ParmVarDecl*>*, clang::Sema::ExtParameterInfoBuilder&, unsigned int*) SemaTemplateInstantiate.cpp:0:0
#34 0x0000557593961198 clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, clang::CXXRecordDecl*, clang::Qualifiers, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f63198)
#35 0x000055759397c0d9 clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*, llvm::SmallVectorImpl<clang::ParmVarDecl*>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f7e0d9)
#36 0x00005575939cb1fa clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*, clang::TemplateParameterList*, std::optional<clang::ASTTemplateArgumentListInfo const*>, clang::TemplateDeclInstantiator::RewriteKind) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6fcd1fa)
#37 0x00005575939cf61c clang::TemplateDeclInstantiator::VisitFunctionTemplateDecl(clang::FunctionTemplateDecl*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6fd161c)
#38 0x0000557593953343 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f55343)
#39 0x0000557593971fa3 clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f73fa3)
#40 0x00005575939fe873 void llvm::function_ref<void ()>::callback_fn<clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*)::'lambda'()>(long) SemaType.cpp:0:0
#41 0x0000557592f46465 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6548465)
#42 0x0000557593a07dc7 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x7009dc7)
#43 0x0000557593a08119 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x700a119)
#44 0x0000557593a082a9 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, unsigned int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x700a2a9)
#45 0x0000557593145f46 clang::Sema::ActOnUninitializedDecl(clang::Decl*) (.part.0) SemaDecl.cpp:0:0
#46 0x0000557592e16824 clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6418824)
#47 0x0000557592e23e18 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6425e18)
#48 0x0000557592df0d01 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63f2d01)
#49 0x0000557592df15bf clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (.part.0) Parser.cpp:0:0
#50 0x0000557592df7f61 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63f9f61)
#51 0x0000557592df88d6 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63fa8d6)
#52 0x0000557592dec69a clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x63ee69a)
#53 0x00005575918f05b8 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4ef25b8)
#54 0x0000557591140a99 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4742a99)
#55 0x00005575910c59a6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x46c79a6)
#56 0x0000557591222d46 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4824d46)
#57 0x000055758db0f36d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x111136d)
#58 0x000055758db0b06a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#59 0x0000557590f2715d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#60 0x00005575905a9020 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3bab020)
#61 0x0000557590f2777f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#62 0x0000557590eeebbc clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44f0bbc)
#63 0x0000557590eef64d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44f164d)
#64 0x0000557590ef76ed clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x44f96ed)
#65 0x000055758db0d5ca clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x110f5ca)
#66 0x000055758da136a5 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x10156a5)
#67 0x00007f742b864083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#68 0x000055758db05e4e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x1107e4e)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134

@shafik shafik added the confirmed Verified by a second party label Jun 15, 2023
@EugeneZelenko EugeneZelenko added the crash Prefer [crash-on-valid] or [crash-on-invalid] label Jun 15, 2023
zyn0217 added a commit that referenced this issue Apr 5, 2024
…eclaration (#82310)

This patch attempts to fix the lambda call expression inside of a type
alias declaration from two aspects:
1. Defer the lambda call expression building until after we have
sufficient template arguments. This avoids the overeager (and often
wrong) semantic checking before the type alias instantiation.
2. Properly obtain template arguments involving a template type alias
for constraint checking.

It is unfortunate that a `TypeAliasTemplateDecl` (or a `TypeAliasDecl`)
is never a `DeclContext`, nor does it have an associated specialization
Decl from which we could collect these template arguments. Thus, I added
a new CodeSynthesisContext to record template arguments for alias
declarations.

Fixes #70601
Fixes #76674
Fixes #79555
Fixes #81145
Fixes #82104

Note that this doesn't involve the fix for
#28461. That seems different,
and I'd like to leave it as a follow-up.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla c++14 clang:frontend Language frontend issues, e.g. anything involving "Sema" confirmed Verified by a second party crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
Development

No branches or pull requests

4 participants