[SR-4866] Stack overflow: Parsing phony empty paren exprs #47443
Labels
bug
A deviation from expected or documented behavior. Also: expected but undesirable behavior.
compiler crash
A crash that happens during compilation
compiler
The Swift compiler in itself
crash
Any kind of crash
good first issue
Good for newcomers
parser
Attachment: Download
Additional Detail from JIRA
md5: 5b7a64ad744a870b56645db75101ffef
Issue Description:
Parse the attached file. Stack overflow.
495 swift 0x0000000106d9e9aa swift::Parser::parseExprList(swift::tok, swift::tok, bool, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Expr*>&, llvm::SmallVectorImpl<swift::Identifier>&, llvm::SmallVectorImpl<swift::SourceLoc>&, swift::SourceLoc&, swift::Expr*&) + 218
496 swift 0x0000000106d9efb1 swift::Parser::parseExprList(swift::tok, swift::tok) + 209
497 swift 0x0000000106d949e0 swift::Parser::parseExprPostfix(swift::Diag<>, bool) + 2416
498 swift 0x0000000106d926b5 swift::Parser::parseExprSequence(swift::Diag<>, bool, bool) + 3717
499 swift 0x0000000106d91795 swift::Parser::parseExprImpl(swift::Diag<>, bool) + 101
500 swift 0x0000000106da0be1 std::**1::function::func<swift::Parser::parseExprList(swift::tok, swift::tok, bool, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Expr*>&, llvm::SmallVectorImpl<swift::Identifier>&, llvm::SmallVectorImpl<swift::SourceLoc>&, swift::SourceLoc&, swift::Expr*&)::$2, std::_1::allocator<swift::Parser::parseExprList(swift::tok, swift::tok, bool, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Expr*>&, llvm::SmallVectorImpl<swift::Identifier>&, llvm::SmallVectorImpl<swift::SourceLoc>&, swift::SourceLoc&, swift::Expr*&)::$_2>, swift::ParserStatus ()>::operator()() + 113
501 swift 0x0000000106dafa6c swift::Parser::parseList(swift::tok, swift::SourceLoc, swift::SourceLoc&, bool, swift::Diag<>, std::_1::function<swift::ParserStatus ()>) + 396
502 swift 0x0000000106d9e9aa swift::Parser::parseExprList(swift::tok, swift::tok, bool, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Expr*>&, llvm::SmallVectorImpl<swift::Identifier>&, llvm::SmallVectorImpl<swift::SourceLoc>&, swift::SourceLoc&, swift::Expr*&) + 218
503 swift 0x0000000106d9efb1 swift::Parser::parseExprList(swift::tok, swift::tok) + 209
504 swift 0x0000000106d949e0 swift::Parser::parseExprPostfix(swift::Diag<>, bool) + 2416
505 swift 0x0000000106d926b5 swift::Parser::parseExprSequence(swift::Diag<>, bool, bool) + 3717
506 swift 0x0000000106d91795 swift::Parser::parseExprImpl(swift::Diag<>, bool) + 101
507 swift 0x0000000106da0be1 std::1::function::func<swift::Parser::parseExprList(swift::tok, swift::tok, bool, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Expr*>&, llvm::SmallVectorImpl<swift::Identifier>&, llvm::SmallVectorImpl<swift::SourceLoc>&, swift::SourceLoc&, swift::Expr*&)::$2, std::_1::allocator<swift::Parser::parseExprList(swift::tok, swift::tok, bool, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Expr*>&, llvm::SmallVectorImpl<swift::Identifier>&, llvm::SmallVectorImpl<swift::SourceLoc>&, swift::SourceLoc&, swift::Expr*&)::$_2>, swift::ParserStatus ()>::operator()() + 113
508 swift 0x0000000106dafa6c swift::Parser::parseList(swift::tok, swift::SourceLoc, swift::SourceLoc&, bool, swift::Diag<>, std::_1::function<swift::ParserStatus ()>) + 396
509 swift 0x0000000106d9e9aa swift::Parser::parseExprList(swift::tok, swift::tok, bool, bool, swift::SourceLoc&, llvm::SmallVectorImpl<swift::Expr*>&, llvm::SmallVectorImpl<swift::Identifier>&, llvm::SmallVectorImpl<swift::SourceLoc>&, swift::SourceLoc&, swift::Expr*&) + 218
510 swift 0x0000000106d9efb1 swift::Parser::parseExprList(swift::tok, swift::tok) + 209
511 swift 0x0000000106d949e0 swift::Parser::parseExprPostfix(swift::Diag<>, bool) + 2416
etc.
The text was updated successfully, but these errors were encountered: