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: unassignedclangb...@nondot.org Reporter: vittorio.ro...@outlook.com CC: llvm-bugs@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.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs