[llvm-bugs] [Bug 31435] New: Frontend crash on 'clang::Sema::tryCaptureVariable' both on clang++3.9 and clang++4.0

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Dec 20 08:11:32 PST 2016


https://llvm.org/bugs/show_bug.cgi?id=31435

            Bug ID: 31435
           Summary: Frontend crash on 'clang::Sema::tryCaptureVariable'
                    both on clang++3.9 and clang++4.0
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: vittorio.romeo at outlook.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

I compiled this on wandbox (and currently do not have access to a local
compiler). Here's the link:

http://melpon.org/wandbox/permlink/ahl5bK74C86ddZga

---
clang++ 4.0 output:

#0 0x00000000019da795 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/usr/local/llvm-head/bin/clang-4.0+0x19da795)
#1 0x00000000019d881e llvm::sys::RunSignalHandlers()
(/usr/local/llvm-head/bin/clang-4.0+0x19d881e)
#2 0x00000000019d8958 SignalHandler(int)
(/usr/local/llvm-head/bin/clang-4.0+0x19d8958)
#3 0x00007f2aa6b3bcb0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0xfcb0)
#4 0x00000000028ccdf1 clang::Sema::tryCaptureVariable(clang::VarDecl*,
clang::SourceLocation, clang::Sema::TryCaptureKind, clang::SourceLocation,
bool, clang::QualType&, clang::QualType&, unsigned int const*)
(/usr/local/llvm-head/bin/clang-4.0+0x28ccdf1)
#5 0x00000000028cec01 clang::Sema::NeedToCaptureVariable(clang::VarDecl*,
clang::SourceLocation) (/usr/local/llvm-head/bin/clang-4.0+0x28cec01)
#6 0x00000000028d00ee clang::Sema::BuildDeclRefExpr(clang::ValueDecl*,
clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&,
clang::CXXScopeSpec const*, clang::NamedDecl*, clang::TemplateArgumentListInfo
const*) (/usr/local/llvm-head/bin/clang-4.0+0x28d00ee)
#7 0x00000000028d08c6 clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec
const&, clang::DeclarationNameInfo const&, clang::NamedDecl*,
clang::NamedDecl*, clang::TemplateArgumentListInfo const*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x28d08c6)
#8 0x0000000002afd2f0 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDeclRefExpr(clang::DeclRefExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2afd2f0)
#9 0x0000000002af29a0 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af29a0)
#10 0x0000000002b02577 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformImplicitCastExpr(clang::ImplicitCastExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b02577)
#11 0x0000000002af29e9 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af29e9)
#12 0x0000000002b03d50 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformMemberExpr(clang::MemberExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b03d50)
#13 0x0000000002af26ea clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af26ea)
#14 0x0000000002b017df clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b017df)
#15 0x0000000002b01919 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCXXMemberCallExpr(clang::CXXMemberCallExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b01919)
#16 0x0000000002af2a4d clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af2a4d)
#17 0x0000000002b017df clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b017df)
#18 0x0000000002af2a61 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af2a61)
#19 0x0000000002ae9ee0 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (/usr/local/llvm-head/bin/clang-4.0+0x2ae9ee0)
#20 0x0000000002af0424
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int)
(/usr/local/llvm-head/bin/clang-4.0+0x2af0424)
#21 0x0000000002b0f494 clang::TemplateDeclInstantiator::VisitDecl(clang::Decl*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b0f494)
#22 0x0000000002b202d5
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2b202d5)
#23 0x0000000002b1b482 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/usr/local/llvm-head/bin/clang-4.0+0x2b1b482)
#24 0x0000000002adae53
clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2adae53)
#25 0x0000000002adf153
clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*,
clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2adf153)
#26 0x0000000002a2054e
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2a2054e)
#27 0x0000000002a20bcb clang::Sema::AddMethodCandidate(clang::DeclAccessPair,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2a20bcb)
#28 0x0000000002a317bb clang::Sema::BuildCallToObjectOfClassType(clang::Scope*,
clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation) (/usr/local/llvm-head/bin/clang-4.0+0x2a317bb)
#29 0x00000000028d972c clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation, clang::Expr*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x28d972c)
#30 0x0000000002b0189b clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b0189b)
#31 0x0000000002af2a61 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af2a61)
#32 0x0000000002ae9ee0 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (/usr/local/llvm-head/bin/clang-4.0+0x2ae9ee0)
#33 0x0000000002aeb85b clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*)
(/usr/local/llvm-head/bin/clang-4.0+0x2aeb85b)
#34 0x0000000002af63e5 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc
const&, clang::TemplateArgumentLoc&, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2af63e5)
#35 0x0000000002afa682 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc, clang::TemplateName)
(/usr/local/llvm-head/bin/clang-4.0+0x2afa682)
#36 0x0000000002aeb45a clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (/usr/local/llvm-head/bin/clang-4.0+0x2aeb45a)
#37 0x0000000002afc209 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformElaboratedType(clang::TypeLocBuilder&,
clang::ElaboratedTypeLoc) (/usr/local/llvm-head/bin/clang-4.0+0x2afc209)
#38 0x0000000002aea3f9 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (/usr/local/llvm-head/bin/clang-4.0+0x2aea3f9)
#39 0x0000000002aeb85b clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*)
(/usr/local/llvm-head/bin/clang-4.0+0x2aeb85b)
#40 0x0000000002af63e5 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc
const&, clang::TemplateArgumentLoc&, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2af63e5)
#41 0x0000000002af9670 bool clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArguments<clang::TemplateArgumentLoc
const*>(clang::TemplateArgumentLoc const*, clang::TemplateArgumentLoc const*,
clang::TemplateArgumentListInfo&, bool) [clone .constprop.1887]
(/usr/local/llvm-head/bin/clang-4.0+0x2af9670)
#42 0x0000000002afa0d5 clang::Sema::Subst(clang::TemplateArgumentLoc const*,
unsigned int, clang::TemplateArgumentListInfo&,
clang::MultiLevelTemplateArgumentList const&)
(/usr/local/llvm-head/bin/clang-4.0+0x2afa0d5)
#43 0x0000000002acf9a6 FinishTemplateArgumentDeduction(clang::Sema&,
clang::ClassTemplatePartialSpecializationDecl*, clang::TemplateArgumentList
const&, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&,
clang::sema::TemplateDeductionInfo&) [clone .constprop.1782]
(/usr/local/llvm-head/bin/clang-4.0+0x2acf9a6)
#44 0x0000000002ad8cfe
clang::Sema::DeduceTemplateArguments(clang::ClassTemplatePartialSpecializationDecl*,
clang::TemplateArgumentList const&, clang::sema::TemplateDeductionInfo&)
(/usr/local/llvm-head/bin/clang-4.0+0x2ad8cfe)
#45 0x0000000002b0b8c0
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) (/usr/local/llvm-head/bin/clang-4.0+0x2b0b8c0)
#46 0x0000000002b3cf73
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser*) (/usr/local/llvm-head/bin/clang-4.0+0x2b3cf73)
#47 0x0000000002b3d435 clang::Sema::RequireCompleteType(clang::SourceLocation,
clang::QualType, clang::Sema::TypeDiagnoser&)
(/usr/local/llvm-head/bin/clang-4.0+0x2b3d435)
#48 0x0000000002905fe9
clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation) (/usr/local/llvm-head/bin/clang-4.0+0x2905fe9)
#49 0x0000000002af4f80 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCXXUnresolvedConstructExpr(clang::CXXUnresolvedConstructExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af4f80)
#50 0x0000000002af2a75 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af2a75)
#51 0x0000000002b069b0 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCondition(clang::SourceLocation,
clang::VarDecl*, clang::Expr*, clang::Sema::ConditionKind) [clone
.constprop.1891] (/usr/local/llvm-head/bin/clang-4.0+0x2b069b0)
#52 0x0000000002b09103 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformIfStmt(clang::IfStmt*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b09103)
#53 0x0000000002b071b5 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b071b5)
#54 0x0000000002b086c3 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*,
bool) (/usr/local/llvm-head/bin/clang-4.0+0x2b086c3)
#55 0x0000000002b087db clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b087db)
#56 0x0000000002b07235 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b07235)
#57 0x0000000002b0b62f clang::Sema::SubstStmt(clang::Stmt*,
clang::MultiLevelTemplateArgumentList const&)
(/usr/local/llvm-head/bin/clang-4.0+0x2b0b62f)
#58 0x0000000002b1e506
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,
clang::FunctionDecl*, bool, bool, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2b1e506)
#59 0x0000000002ad1aeb clang::Sema::DeduceReturnType(clang::FunctionDecl*,
clang::SourceLocation, bool) (/usr/local/llvm-head/bin/clang-4.0+0x2ad1aeb)
#60 0x00000000028c8466 clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*,
clang::SourceLocation, clang::ObjCInterfaceDecl const*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x28c8466)
#61 0x0000000002a2870e 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) [clone .constprop.826]
(/usr/local/llvm-head/bin/clang-4.0+0x2a2870e)
#62 0x0000000002a3096b clang::Sema::BuildOverloadedCallExpr(clang::Scope*,
clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation,
llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool,
bool) (/usr/local/llvm-head/bin/clang-4.0+0x2a3096b)
#63 0x00000000028d94ae clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation, clang::Expr*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x28d94ae)
#64 0x0000000002b0189b clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b0189b)
#65 0x0000000002af2a61 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af2a61)
#66 0x0000000002af3b78 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2af3b78)
#67 0x0000000002af3c81 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*)
(/usr/local/llvm-head/bin/clang-4.0+0x2af3c81)
#68 0x0000000002b06e45 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b06e45)
#69 0x0000000002b086c3 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*,
bool) (/usr/local/llvm-head/bin/clang-4.0+0x2b086c3)
#70 0x0000000002b087db clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b087db)
#71 0x0000000002b07235 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*)
(/usr/local/llvm-head/bin/clang-4.0+0x2b07235)
#72 0x0000000002b0b62f clang::Sema::SubstStmt(clang::Stmt*,
clang::MultiLevelTemplateArgumentList const&)
(/usr/local/llvm-head/bin/clang-4.0+0x2b0b62f)
#73 0x0000000002b1e506
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,
clang::FunctionDecl*, bool, bool, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x2b1e506)
#74 0x0000000002ad1aeb clang::Sema::DeduceReturnType(clang::FunctionDecl*,
clang::SourceLocation, bool) (/usr/local/llvm-head/bin/clang-4.0+0x2ad1aeb)
#75 0x00000000028c8466 clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*,
clang::SourceLocation, clang::ObjCInterfaceDecl const*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x28c8466)
#76 0x0000000002a03280 CreateFunctionRefExpr(clang::Sema&,
clang::FunctionDecl*, clang::NamedDecl*, bool, clang::SourceLocation,
clang::DeclarationNameLoc const&) [clone .constprop.868]
(/usr/local/llvm-head/bin/clang-4.0+0x2a03280)
#77 0x0000000002a31ad2 clang::Sema::BuildCallToObjectOfClassType(clang::Scope*,
clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation) (/usr/local/llvm-head/bin/clang-4.0+0x2a31ad2)
#78 0x00000000028d972c clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation, clang::Expr*, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x28d972c)
#79 0x0000000002578b5b
clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*,
true>) (/usr/local/llvm-head/bin/clang-4.0+0x2578b5b)
#80 0x000000000257362b clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState) (/usr/local/llvm-head/bin/clang-4.0+0x257362b)
#81 0x0000000002575c0d clang::Parser::ParseCastExpression(bool, bool,
clang::Parser::TypeCastState) (/usr/local/llvm-head/bin/clang-4.0+0x2575c0d)
#82 0x0000000002575c99
clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState)
(/usr/local/llvm-head/bin/clang-4.0+0x2575c99)
#83 0x0000000002575d19
clang::Parser::ParseExpression(clang::Parser::TypeCastState)
(/usr/local/llvm-head/bin/clang-4.0+0x2575d19)
#84 0x00000000025b878f clang::Parser::ParseExprStatement()
(/usr/local/llvm-head/bin/clang-4.0+0x25b878f)
#85 0x00000000025b5ccf
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*,
clang::Parser::ParsedAttributesWithRange&)
(/usr/local/llvm-head/bin/clang-4.0+0x25b5ccf)
#86 0x00000000025b5efe
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::AllowedContsructsKind, clang::SourceLocation*)
(/usr/local/llvm-head/bin/clang-4.0+0x25b5efe)
#87 0x00000000025bad69 clang::Parser::ParseCompoundStatementBody(bool)
(/usr/local/llvm-head/bin/clang-4.0+0x25bad69)
#88 0x00000000025bd49e clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&) (/usr/local/llvm-head/bin/clang-4.0+0x25bd49e)
#89 0x000000000253702c
clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*)
(/usr/local/llvm-head/bin/clang-4.0+0x253702c)
#90 0x0000000002555f18 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&,
unsigned int, clang::SourceLocation*, clang::Parser::ForRangeInit*)
(/usr/local/llvm-head/bin/clang-4.0+0x2555f18)
#91 0x000000000253239a
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier)
(/usr/local/llvm-head/bin/clang-4.0+0x253239a)
#92 0x0000000002532ac9
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier) [clone .part.149] [clone
.constprop.182] (/usr/local/llvm-head/bin/clang-4.0+0x2532ac9)
#93 0x0000000002532aff
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier)
(/usr/local/llvm-head/bin/clang-4.0+0x2532aff)
#94 0x000000000253995f
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) (/usr/local/llvm-head/bin/clang-4.0+0x253995f)
#95 0x000000000253a2f7
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
(/usr/local/llvm-head/bin/clang-4.0+0x253a2f7)
#96 0x000000000252e4ab clang::ParseAST(clang::Sema&, bool, bool)
(/usr/local/llvm-head/bin/clang-4.0+0x252e4ab)
#97 0x0000000001e8a6c6 clang::FrontendAction::Execute()
(/usr/local/llvm-head/bin/clang-4.0+0x1e8a6c6)
#98 0x0000000001e5b3f6
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/usr/local/llvm-head/bin/clang-4.0+0x1e5b3f6)
#99 0x0000000001f14ccb
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/usr/local/llvm-head/bin/clang-4.0+0x1f14ccb)
#100 0x0000000000829c98 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/usr/local/llvm-head/bin/clang-4.0+0x829c98)
#101 0x00000000007b7a75 main (/usr/local/llvm-head/bin/clang-4.0+0x7b7a75)
#102 0x00007f2aa56b97ed __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x217ed)
#103 0x0000000000827da1 _start (/usr/local/llvm-head/bin/clang-4.0+0x827da1)
Stack dump:
0.    Program arguments: /usr/local/llvm-head/bin/clang-4.0 -cc1 -triple
x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
-disable-llvm-verifier -discard-value-names -main-file-name prog.cc
-mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno
-masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64
-dwarf-column-info -debugger-tuning=gdb -nostdinc++ -resource-dir
/usr/local/llvm-head/bin/../lib/clang/4.0.0 -I
/usr/local/llvm-head/include/c++/v1 -I /usr/local/boost-sml/include -I
/usr/local/range-v3/include -I /usr/local/boost-1.62.0/include
-internal-isystem /usr/local/include -internal-isystem
/usr/local/llvm-head/bin/../lib/clang/4.0.0/include -internal-externc-isystem
/usr/include/x86_64-linux-gnu -internal-externc-isystem /include
-internal-externc-isystem /usr/include -Wall -Wextra -std=gnu++1z
-fdeprecated-macro -fdebug-compilation-dir /home/jail -ferror-limit 19
-fmessage-length 0 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -fansi-escape-codes -o
/tmp/prog-9b8b94.o -x c++ prog.cc 
1.    prog.cc:186:15: current parser token ')'
2.    prog.cc:179:1: parsing function body 'main'
3.    prog.cc:179:1: in compound statement ('{}')
4.    prog.cc:150:16: instantiating function definition 'curry((lambda at
prog.cc:180:16) &&)::(anonymous class)::operator()<int, int, int>'
5.    prog.cc:146:16: instantiating function definition 'curry<(lambda at
prog.cc:154:17)>'
clang-4.0: error: unable to execute command: Segmentation fault
clang-4.0: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 4.0.0 (trunk 290110)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/llvm-head/bin
clang-4.0: 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-4.0: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-4.0: note: diagnostic msg: /tmp/prog-2a5dec.cpp
clang-4.0: note: diagnostic msg: /tmp/prog-2a5dec.sh
clang-4.0: note: diagnostic msg: 

********************

---

clang++ 3.9 output:

0  clang-3.9       0x00000000015838d5
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37
1  clang-3.9       0x0000000001583f36
2  libpthread.so.0 0x00007f2768e273d0
3  clang-3.9       0x00000000022e83cd
clang::Sema::tryCaptureVariable(clang::VarDecl*, clang::SourceLocation,
clang::Sema::TryCaptureKind, clang::SourceLocation, bool, clang::QualType&,
clang::QualType&, unsigned int const*) + 1613
4  clang-3.9       0x00000000022b332b
clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType,
clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::CXXScopeSpec
const*, clang::NamedDecl*, clang::TemplateArgumentListInfo const*) + 203
5  clang-3.9       0x00000000022b7aa9
clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec const&,
clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::NamedDecl*,
clang::TemplateArgumentListInfo const*, bool) + 2297
6  clang-3.9       0x0000000002513617
7  clang-3.9       0x000000000250c1d0
8  clang-3.9       0x000000000250a61f
9  clang-3.9       0x000000000250a61f
10 clang-3.9       0x00000000024fa36b
11 clang-3.9       0x00000000024fdf86
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int) + 1462
12 clang-3.9       0x00000000025282a8
clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*,
llvm::SmallVectorImpl<clang::ParmVarDecl*>&) + 184
13 clang-3.9       0x0000000002525c7c
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) + 684
14 clang-3.9       0x000000000252c118 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) + 136
15 clang-3.9       0x00000000024d01ab
clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool) + 2283
16 clang-3.9       0x00000000024d1e79
clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*,
clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool) + 2777
17 clang-3.9       0x00000000024299da
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool) + 330
18 clang-3.9       0x0000000002440f99
clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation) + 1049
19 clang-3.9       0x00000000022af258 clang::Sema::ActOnCallExpr(clang::Scope*,
clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation, clang::Expr*, bool) + 1800
20 clang-3.9       0x000000000250a6e9
21 clang-3.9       0x00000000024fa36b
22 clang-3.9       0x00000000024f9210
23 clang-3.9       0x000000000251208b
24 clang-3.9       0x0000000002510a54
25 clang-3.9       0x00000000024faea3
26 clang-3.9       0x00000000024fa53a
27 clang-3.9       0x00000000024f9210
28 clang-3.9       0x000000000251208b
29 clang-3.9       0x000000000251c2c2
30 clang-3.9       0x0000000002506e97
clang::Sema::Subst(clang::TemplateArgumentLoc const*, unsigned int,
clang::TemplateArgumentListInfo&, clang::MultiLevelTemplateArgumentList const&)
+ 71
31 clang-3.9       0x00000000024cda47
32 clang-3.9       0x00000000024cd6b8
clang::Sema::DeduceTemplateArguments(clang::ClassTemplatePartialSpecializationDecl*,
clang::TemplateArgumentList const&, clang::sema::TemplateDeductionInfo&) + 1176
33 clang-3.9       0x00000000025033c3
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) + 499
34 clang-3.9       0x000000000255544f
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser*) + 1199
35 clang-3.9       0x0000000002554e80
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 16
36 clang-3.9       0x000000000231c5b2
clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation) + 914
37 clang-3.9       0x000000000250a4e4
38 clang-3.9       0x0000000002519d28
39 clang-3.9       0x0000000002517cb9
40 clang-3.9       0x0000000002514ce1
41 clang-3.9       0x00000000025041c1 clang::Sema::SubstStmt(clang::Stmt*,
clang::MultiLevelTemplateArgumentList const&) + 65
42 clang-3.9       0x000000000252d3a4
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,
clang::FunctionDecl*, bool, bool, bool) + 3188
43 clang-3.9       0x00000000024d6bea
[Truncated]
Compiler exited with result code null

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20161220/2df99d13/attachment-0001.html>


More information about the llvm-bugs mailing list