-
Notifications
You must be signed in to change notification settings - Fork 15k
Closed
Labels
clang:diagnosticsNew/improved warning or error message in Clang, but not in clang-tidy or static analyzerNew/improved warning or error message in Clang, but not in clang-tidy or static analyzerconfirmedVerified by a second partyVerified by a second partycrash-on-invalid
Description
Code
#include <utility>
template <typename... T>
void foo(T &&...Params) {
std::forward<T>(Unknown);
((std::forward<T>(Unknown)), ...);
}
Output
1.cpp:5:3: error: expression contains unexpanded parameter pack 'T'
std::forward<T>(Unknown);
^ ~
1.cpp:6:21: error: use of undeclared identifier 'Unknown'
((std::forward<T>(Unknown)), ...);
^
Stack dump:
0. Program arguments: bin/clang 1.cpp -c
1. 1.cpp:7:1: current parser token '}'
2. 1.cpp:4:25: parsing function body 'foo'
3. 1.cpp:4:25: in compound statement ('{}')
#0 0x00005624eeb2609f PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x00005624eeb23d14 llvm::sys::CleanupOnSignal(unsigned long) (bin/clang+0x1f3ed14)
#2 0x00005624eea8c7e8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007f88b86dc980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
#4 0x00005624f0a9a487 clang::Sema::Diag(clang::SourceLocation, unsigned int, bool) (bin/clang+0x3eb5487)
#5 0x00005624f0d75e10 emitEmptyLookupTypoDiagnostic(clang::TypoCorrection const&, clang::Sema&, clang::CXXScopeSpec const&, clang::DeclarationName, clang::SourceLocation, llvm::ArrayRef<clang::Expr*>, unsigned int, unsigned int) (.isra.11513) SemaExpr.cpp:0:0
#6 0x00005624f0d76379 std::_Function_handler<void (clang::TypoCorrection const&), clang::Sema::DiagnoseEmptyLookup(clang::Scope*, clang::CXXScopeSpec&, clang::LookupResult&, clang::CorrectionCandidateCallback&, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::TypoExpr**)::'lambda'(clang::TypoCorrection const&)>::_M_invoke(std::_Any_data const&, clang::TypoCorrection const&) SemaExpr.cpp:0:0
#7 0x00005624f0eb557f clang::Sema::CorrectDelayedTyposInExpr(clang::Expr*, clang::VarDecl*, bool, llvm::function_ref<clang::ActionResult<clang::Expr*, true> (clang::Expr*)>) (bin/clang+0x42d057f)
#8 0x00005624f0eb6ca1 clang::Sema::ActOnFinishFullExpr(clang::Expr*, clang::SourceLocation, bool, bool, bool) (bin/clang+0x42d1ca1)
#9 0x00005624f10bbf8f clang::Sema::ActOnExprStmt(clang::ActionResult<clang::Expr*, true>, bool) (bin/clang+0x44d6f8f)
#10 0x00005624f0a2f614 clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) (bin/clang+0x3e4a614)
#11 0x00005624f0a2572a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (bin/clang+0x3e4072a)
#12 0x00005624f0a260df clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (bin/clang+0x3e410df)
#13 0x00005624f0a26fe5 clang::Parser::ParseCompoundStatementBody(bool) (bin/clang+0x3e41fe5)
#14 0x00005624f0a27793 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (bin/clang+0x3e42793)
#15 0x00005624f096bfff clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (bin/clang+0x3d86fff)
#16 0x00005624f0a42dab clang::Parser::ParseSingleDeclarationAfterTemplate(clang::DeclaratorContext, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (bin/clang+0x3e5ddab)
#17 0x00005624f0a4af30 clang::Parser::ParseTemplateDeclarationOrSpecialization(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (bin/clang+0x3e65f30)
#18 0x00005624f0a4b216 clang::Parser::ParseDeclarationStartingWithTemplate(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) (bin/clang+0x3e66216)
#19 0x00005624f0997500 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (bin/clang+0x3db2500)
#20 0x00005624f096dbde clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (bin/clang+0x3d88bde)
#21 0x00005624f096f3fa clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (bin/clang+0x3d8a3fa)
#22 0x00005624f09619aa clang::ParseAST(clang::Sema&, bool, bool) (bin/clang+0x3d7c9aa)
#23 0x00005624efb87815 clang::CodeGenAction::ExecuteAction() (bin/clang+0x2fa2815)
#24 0x00005624ef5633b1 clang::FrontendAction::Execute() (bin/clang+0x297e3b1)
#25 0x00005624ef4f40ca clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (bin/clang+0x290f0ca)
#26 0x00005624ef631c3b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (bin/clang+0x2a4cc3b)
#27 0x00005624ed99872c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (bin/clang+0xdb372c)
#28 0x00005624ed993965 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#29 0x00005624ef372819 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
#30 0x00005624eea8cc23 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (bin/clang+0x1ea7c23)
#31 0x00005624ef373271 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.275) Job.cpp:0:0
#32 0x00005624ef340388 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (bin/clang+0x275b388)
#33 0x00005624ef340d83 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (bin/clang+0x275bd83)
#34 0x00005624ef3485ac clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (bin/clang+0x27635ac)
#35 0x00005624ed996d17 clang_main(int, char**, llvm::ToolContext const&) (bin/clang+0xdb1d17)
#36 0x00005624ed90e701 main (bin/clang+0xd29701)
#37 0x00007f88b7370c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#38 0x00005624ed98fc8a _start (bin/clang+0xdaac8a)
clang: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 01487f384a1eeb664bc6803cc996054f838eda95)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /llvm-project/build/bin
Metadata
Metadata
Assignees
Labels
clang:diagnosticsNew/improved warning or error message in Clang, but not in clang-tidy or static analyzerNew/improved warning or error message in Clang, but not in clang-tidy or static analyzerconfirmedVerified by a second partyVerified by a second partycrash-on-invalid