-
Notifications
You must be signed in to change notification settings - Fork 12.3k
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
[Crash] clangd crash If there is an "N" in the code #84122
Labels
clang:frontend
Language frontend issues, e.g. anything involving "Sema"
crash
Prefer [crash-on-valid] or [crash-on-invalid]
Comments
EugeneZelenko
added
clang:frontend
Language frontend issues, e.g. anything involving "Sema"
crash
Prefer [crash-on-valid] or [crash-on-invalid]
and removed
new issue
labels
Mar 6, 2024
@llvm/issue-subscribers-clang-frontend Author: None (Neojan)
If there is an "N" in the code, it will cause cland crash
eg: printf("abcdefg \N");
StackTrace:
#<!-- -->0 0x000000000052eb73 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/runner/work/clangd/clangd/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:13
#<!-- -->1 0x000000000052caec llvm::sys::RunSignalHandlers() /home/runner/work/clangd/clangd/llvm-project/llvm/lib/Support/Signals.cpp:104:18
#<!-- -->2 0x000000000052eee6 SignalHandler(int) /home/runner/work/clangd/clangd/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
#<!-- -->3 0x00007f5d054f18a0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x128a0)
#<!-- -->4 0x0000000000a4fe8e clang::StringLiteralParser::init(llvm::ArrayRef<clang::Token>) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Lex/LiteralSupport.cpp:2099:24
#<!-- -->5 0x0000000000ed077e clang::Sema::ActOnStringLiteral(llvm::ArrayRef<clang::Token>, clang::Scope*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Sema/SemaExpr.cpp:1861:23
#<!-- -->6 0x0000000001dd9e1f clang::Parser::ParseStringLiteralExpression(bool) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:3218:18
#<!-- -->7 0x0000000001dd2244 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:1291:11
#<!-- -->8 0x0000000001dcf751 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:681:20
#<!-- -->9 0x0000000001dcdf2c clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:176:10
#<!-- -->10 0x0000000001ddd2ba clang::Parser::ParseExpressionList(llvm::SmallVectorImpl<clang::Expr*>&, llvm::SmallVectorImpl<clang::SourceLocation>&, llvm::function_ref<void ()>, bool, bool) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:0:0
#<!-- -->11 0x0000000001dd0656 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:2058:15
#<!-- -->12 0x0000000001dd1e22 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:1819:9
#<!-- -->13 0x0000000001dcf751 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:681:20
#<!-- -->14 0x0000000001dcdf2c clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:176:10
#<!-- -->15 0x0000000001dcde69 clang::Parser::ParseExpression(clang::Parser::TypeCastState) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseExpr.cpp:125:10
#<!-- -->16 0x0000000001e30ce5 clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:509:19
#<!-- -->17 0x0000000001e2f34f clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:264:12
#<!-- -->18 0x0000000001e2ec66 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:114:20
#<!-- -->19 0x0000000001e37b81 clang::Parser::ParseCompoundStatementBody(bool) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:1157:11
#<!-- -->20 0x0000000001e2f674 ParseCompoundStatement /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:966:10
#<!-- -->21 0x0000000001e2f674 ParseCompoundStatement /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:931:10
#<!-- -->22 0x0000000001e2f674 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:279:12
#<!-- -->23 0x0000000001e2ec66 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:114:20
#<!-- -->24 0x0000000001e324aa ParseStatement /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:41:11
#<!-- -->25 0x0000000001e324aa clang::Parser::ParseIfStatement(clang::SourceLocation*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:1522:16
#<!-- -->26 0x0000000001e2f81e clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:286:12
#<!-- -->27 0x0000000001e2ec66 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:114:20
#<!-- -->28 0x0000000001e37b81 clang::Parser::ParseCompoundStatementBody(bool) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:1157:11
#<!-- -->29 0x0000000001e2f674 ParseCompoundStatement /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:966:10
#<!-- -->30 0x0000000001e2f674 ParseCompoundStatement /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:931:10
#<!-- -->31 0x0000000001e2f674 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:279:12
#<!-- -->32 0x0000000001e2ec66 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:114:20
#<!-- -->33 0x0000000001e37b81 clang::Parser::ParseCompoundStatementBody(bool) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:1157:11
#<!-- -->34 0x0000000001e390ad clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseStmt.cpp:2428:21
#<!-- -->35 0x0000000001d86569 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/Parser.cpp:0:0
#<!-- -->36 0x0000000001da3980 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseDecl.cpp:2121:18
#<!-- -->37 0x0000000001d853a2 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/Parser.cpp:1179:10
#<!-- -->38 0x0000000001d84de0 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/Parser.cpp:1193:12
#<!-- -->39 0x0000000001d83fd0 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsingDeclSpec*) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/Parser.cpp:1019:12
#<!-- -->40 0x0000000001d81adc clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/Parser.cpp:737:10
#<!-- -->41 0x0000000001d7d58e clang::ParseAST(clang::Sema&, bool, bool) /home/runner/work/clangd/clangd/llvm-project/clang/lib/Parse/ParseAST.cpp:161:5
#<!-- -->42 0x0000000001b9219b clang::FrontendAction::Execute() /home/runner/work/clangd/clangd/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1041:10
#<!-- -->43 0x00000000014cc747 operator bool /home/runner/work/clangd/clangd/llvm-project/llvm/include/llvm/Support/Error.h:235:21
#<!-- -->44 0x00000000014cc747 clang::clangd::BackgroundIndex::index(clang::tooling::CompileCommand) /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/index/Background.cpp:322:19
#<!-- -->45 0x00000000014cf447 _M_data /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/basic_string.h:187:28
#<!-- -->46 0x00000000014cf447 _M_is_local /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/basic_string.h:222:16
#<!-- -->47 0x00000000014cf447 _M_dispose /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/basic_string.h:231:7
#<!-- -->48 0x00000000014cf447 ~basic_string /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/basic_string.h:658:9
#<!-- -->49 0x00000000014cf447 ~CompileCommand /home/runner/work/clangd/clangd/llvm-project/clang/include/clang/Tooling/CompilationDatabase.h:44:8
#<!-- -->50 0x00000000014cf447 operator() /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/index/Background.cpp:165:22
#<!-- -->51 0x00000000014cf447 __invoke_impl<void, (lambda at /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/index/Background.cpp:158:27) &> /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:60:14
#<!-- -->52 0x00000000014cf447 __invoke_r<void, (lambda at /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/index/Background.cpp:158:27) &> /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:153:7
#<!-- -->53 0x00000000014cf447 std::_Function_handler<void (), clang::clangd::BackgroundIndex::indexFileTask(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::$_3>::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/std_function.h:291:9
#<!-- -->54 0x00000000014d30ff clang::clangd::BackgroundQueue::work(std::function<void ()>) /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/index/BackgroundQueue.cpp:43:25
#<!-- -->55 0x00000000014cddf2 ~_Function_base /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/std_function.h:244:11
#<!-- -->56 0x00000000014cddf2 operator() /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/index/Background.cpp:111:27
#<!-- -->57 0x00000000014cddf2 void llvm::detail::UniqueFunctionBase<void>::CallImpl<clang::clangd::BackgroundIndex::BackgroundIndex(clang::clangd::ThreadsafeFS const&, clang::clangd::GlobalCompilationDatabase const&, llvm::unique_function<clang::clangd::BackgroundIndexStorage* (llvm::StringRef)>, clang::clangd::BackgroundIndex::Options)::$_1>(void*) /home/runner/work/clangd/clangd/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:222:12
#<!-- -->58 0x0000000001564cb1 PointerIntPair /home/runner/work/clangd/clangd/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:49:12
#<!-- -->59 0x0000000001564cb1 UniqueFunctionBase /home/runner/work/clangd/clangd/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:340:3
#<!-- -->60 0x0000000001564cb1 unique_function /home/runner/work/clangd/clangd/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:369:3
#<!-- -->61 0x0000000001564cb1 operator() /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:102:14
#<!-- -->62 0x0000000001564cb1 Apply<(lambda at /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:97:15)> /home/runner/work/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:42:5
#<!-- -->63 0x0000000001564cb1 GenericThreadProxy<std::tuple<(lambda at /home/runner/work/clangd/clangd/llvm-project/clang-tools-extra/clangd/support/Threading.cpp:97:15)> > /home/runner/work/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:50:5
#<!-- -->64 0x0000000001564cb1 void* llvm::thread::ThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::$_1> >(void*) /home/runner/work/clangd/clangd/llvm-project/llvm/include/llvm/Support/thread.h:60:5
#<!-- -->65 0x00007f5d054e66db start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76db)
#<!-- -->66 0x00007f5d04a65a3f clone /build/glibc-2ORdQG/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:97:0 |
Neojan
changed the title
[Crush] clangd crush If there is an "N" in the code
[Crash] clangd crash If there is an "N" in the code
Mar 6, 2024
The stacktrace looks more like a clang issue to me. And yes, I can reproduce it on clang-15: https://gcc.godbolt.org/z/6x3vabWj1 |
Fixed in clang 16 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
clang:frontend
Language frontend issues, e.g. anything involving "Sema"
crash
Prefer [crash-on-valid] or [crash-on-invalid]
If there is an "N" in the code, it will cause cland crash
eg: printf("abcdefg \N");
The text was updated successfully, but these errors were encountered: