-
Notifications
You must be signed in to change notification settings - Fork 15.1k
Closed
Labels
Description
| Bugzilla Link | 44714 |
| Resolution | FIXED |
| Resolved on | Feb 12, 2020 06:46 |
| Version | trunk |
| OS | Linux |
| Blocks | #43900 |
| CC | @zygoloid,@saarraz |
| Fixed by commit(s) | 5fef14d |
Extended Description
min.cc:
template concept C = true;
void bar(C auto foo);
int y = bar(
clang -cc1 -std=c++2a min.cc -code-completion-at=min.cc:3:16
/usr/local/google/home/sammccall/src/llvm-mono/clang/lib/AST/ExprConstant.cpp:13755: bool clang::Expr::EvaluateAsRValue(clang::Expr::EvalResult &, const clang::ASTContext &, bool) const: Assertion `!isValueDependent() && "Expression evaluator can't be called on a dependent expression."' failed.
Stack dump:
0. Program arguments: bin/clang -cc1 -std=c++2a /usr/local/google/home/sammccall/min.cc -code-completion-at=/usr/local/google/home/sammccall/min.cc:3:16
- /usr/local/google/home/sammccall/min.cc:4:1: current parser token '�'
#0 0x0000000002558074 PrintStackTrace /usr/local/google/home/sammccall/src/llvm-mono/llvm/lib/Support/Unix/Signals.inc:564:13
#1 0x0000000002558074 PrintStackTraceSignalHandler(void*) /usr/local/google/home/sammccall/src/llvm-mono/llvm/lib/Support/Unix/Signals.inc:624:0
#2 0x0000000002555c0e llvm::sys::RunSignalHandlers() /usr/local/google/home/sammccall/src/llvm-mono/llvm/lib/Support/Signals.cpp:69:18
#3 0x000000000255848c SignalHandler(int) /usr/local/google/home/sammccall/src/llvm-mono/llvm/lib/Support/Unix/Signals.inc:396:3
#4 0x00007f537316d3a0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x123a0)
#5 0x00007f53724c2cfb raise /build/glibc-XAwaOT/glibc-2.28/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#6 0x00007f53724ad8ad abort /build/glibc-XAwaOT/glibc-2.28/stdlib/abort.c:81:7
#7 0x00007f53724ad77f get_sysdep_segment_value /build/glibc-XAwaOT/glibc-2.28/intl/loadmsgcat.c:509:8
#8 0x00007f53724ad77f _nl_load_domain /build/glibc-XAwaOT/glibc-2.28/intl/loadmsgcat.c:970:34
#9 0x00007f53724bb542 (/lib/x86_64-linux-gnu/libc.so.6+0x2f542)
#10 0x000000000479ca39 (bin/clang+0x479ca39)
#11 0x0000000003df3080 bool calculateConstraintSatisfaction<calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRefclang::TemplateArgument, clang::SourceLocation, clang::MultiLevelTemplateArgumentList&, clang::Expr const*, clang::ConstraintSatisfaction&)::$_5>(clang::Sema&, clang::Expr const*, clang::ConstraintSatisfaction&, calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRefclang::TemplateArgument, clang::SourceLocation, clang::MultiLevelTemplateArgumentList&, clang::Expr const*, clang::ConstraintSatisfaction&)::$_5&&) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaConcept.cpp:151:7
#12 0x0000000003dedf0a CheckConstraintSatisfaction /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaConcept.cpp:260:9
#13 0x0000000003dedf0a clang::Sema::CheckConstraintSatisfaction(clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::ArrayRefclang::TemplateArgument, clang::SourceRange, clang::ConstraintSatisfaction&) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaConcept.cpp:298:0
#14 0x00000000043f4d1c clang::Sema::CheckInstantiatedFunctionTemplateConstraints(clang::SourceLocation, clang::FunctionDecl*, llvm::ArrayRefclang::TemplateArgument, clang::ConstraintSatisfaction&) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp:4266:10
#15 0x0000000004343b9c clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImplclang::DeducedTemplateArgument&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImplclang::Sema::OriginalCallArg const*, bool, llvm::function_ref<bool ()>) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaTemplateDeduction.cpp:3459:7
#16 0x0000000004345679 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRefclang::Expr*, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, llvm::function_ref<bool (llvm::ArrayRefclang::QualType)>) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaTemplateDeduction.cpp:0:10
#17 0x0000000004211ec6 clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRefclang::Expr*, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaOverload.cpp:6980:31
#18 0x00000000042274df AddOverloadedCallCandidate(clang::Sema&, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRefclang::Expr*, clang::OverloadCandidateSet&, bool, bool) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaOverload.cpp:12342:7
#19 0x000000000422730e clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*, llvm::ArrayRefclang::Expr*, clang::OverloadCandidateSet&, bool) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaOverload.cpp:12398:5
#20 0x0000000003d9de2b clang::Sema::ProduceCallSignatureHelp(clang::Scope*, clang::Expr*, llvm::ArrayRefclang::Expr*, clang::SourceLocation) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Sema/SemaCodeComplete.cpp:5521:5
#21 0x0000000003c65ec8 operator() /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseExpr.cpp:1900:29
#22 0x0000000003c65ec8 clang::QualType llvm::function_ref<clang::QualType ()>::callback_fn<clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>)::$_1>(long) /usr/local/google/home/sammccall/src/llvm-mono/llvm/include/llvm/ADT/STLExtras.h:108:0
#23 0x0000000003c55b10 operator() /usr/local/google/home/sammccall/src/llvm-mono/llvm/include/llvm/ADT/STLExtras.h:125:12
#24 0x0000000003c55b10 get /usr/local/google/home/sammccall/src/llvm-mono/clang/include/clang/Sema/Sema.h:322:0
#25 0x0000000003c55b10 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseExpr.cpp:163:0
#26 0x0000000003c63bca clang::Parser::ParseExpressionList(llvm::SmallVectorImplclang::Expr*&, llvm::SmallVectorImplclang::SourceLocation&, llvm::function_ref<void ()>) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseExpr.cpp:0:0
#27 0x0000000003c57c70 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseExpr.cpp:1905:15
#28 0x0000000003c5970d clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseExpr.cpp:1706:9
#29 0x0000000003c55b59 ParseCastExpression /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseExpr.cpp:663:20
#30 0x0000000003c55b59 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseExpr.cpp:173:0
#31 0x0000000003c2ea81 ParseInitializer /usr/local/google/home/sammccall/src/llvm-mono/clang/include/clang/Parse/Parser.h:0:0
#32 0x0000000003c2ea81 clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseDecl.cpp:2374:0
#33 0x0000000003c2ca66 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseDecl.cpp:2128:21
#34 0x0000000003c104c2 clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/Parser.cpp:1109:10
#35 0x0000000003c0ff05 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/Parser.cpp:1125:12
#36 0x0000000003c0efbd clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/Parser.cpp:945:12
#37 0x0000000003c0cdb5 clang::Parser::ParseTopLevelDecl(clang::OpaquePtrclang::DeclGroupRef&, bool) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/Parser.cpp:696:10
#38 0x0000000003c080d8 clang::ParseAST(clang::Sema&, bool, bool) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Parse/ParseAST.cpp:157:5
#39 0x0000000002cf5770 clang::FrontendAction::Execute() /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Frontend/FrontendAction.cpp:944:10
#40 0x0000000002c8cd64 getPtr /usr/local/google/home/sammccall/src/llvm-mono/llvm/include/llvm/Support/Error.h:273:42
#41 0x0000000002c8cd64 operator bool /usr/local/google/home/sammccall/src/llvm-mono/llvm/include/llvm/Support/Error.h:236:0
#42 0x0000000002c8cd64 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/Frontend/CompilerInstance.cpp:965:0
#43 0x0000000002da5d8f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /usr/local/google/home/sammccall/src/llvm-mono/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:292:25
#44 0x000000000091c6e2 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /usr/local/google/home/sammccall/src/llvm-mono/clang/tools/driver/cc1_main.cpp:239:15
#45 0x000000000091a67c ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /usr/local/google/home/sammccall/src/llvm-mono/clang/tools/driver/driver.cpp:328:12
#46 0x000000000091a083 main /usr/local/google/home/sammccall/src/llvm-mono/clang/tools/driver/driver.cpp:402:12
#47 0x00007f53724af52b __libc_start_main /build/glibc-XAwaOT/glibc-2.28/csu/../csu/libc-start.c:342:3
#48 0x00000000009172fa _start (bin/clang+0x9172fa)