Commits
practicalswift committed 25ca69f82ae
[SIL] Add test case for crash triggered in swift::Parser::parseExprIdentifier()
Stack trace:
```
<stdin>:3:16: error: expected '>' to complete generic parameter list
enum n{func p<p{p<@convention()>
^
<stdin>:3:14: note: to match this opening '<'
enum n{func p<p{p<@convention()>
^
<stdin>:3:16: error: expected '(' in argument list of function declaration
enum n{func p<p{p<@convention()>
^
<stdin>:3:31: error: expected convention name identifier in 'convention' attribute
enum n{func p<p{p<@convention()>
^
<stdin>:3:32: error: expected type
enum n{func p<p{p<@convention()>
^
<stdin>:3:18: note: while parsing this '<' as a type parameter bracket
enum n{func p<p{p<@convention()>
^
sil-opt: /path/to/swift/include/swift/Basic/SourceLoc.h:93: swift::SourceRange::SourceRange(swift::SourceLoc, swift::SourceLoc): Assertion `Start.isValid() == End.isValid() && "Start and end should either both be valid or both be invalid!"' failed.
8 sil-opt 0x0000000000a2049a swift::Parser::parseExprIdentifier() + 1722
9 sil-opt 0x0000000000a1c363 swift::Parser::parseExprPostfix(swift::Diag<>, bool) + 515
10 sil-opt 0x0000000000a1afaa swift::Parser::parseExprSequence(swift::Diag<>, bool, bool) + 170
11 sil-opt 0x0000000000a1ae9f swift::Parser::parseExprImpl(swift::Diag<>, bool) + 191
12 sil-opt 0x0000000000a51054 swift::Parser::parseExprOrStmt(swift::ASTNode&) + 420
13 sil-opt 0x0000000000a52c56 swift::Parser::parseBraceItems(llvm::SmallVectorImpl<swift::ASTNode>&, swift::BraceItemListKind, swift::BraceItemListKind) + 1974
14 sil-opt 0x0000000000a573e0 swift::Parser::parseBraceItemList(swift::Diag<>) + 96
15 sil-opt 0x0000000000a11d61 swift::Parser::parseDeclFunc(swift::SourceLoc, swift::StaticSpellingKind, swift::OptionSet<swift::Parser::ParseDeclFlags, unsigned int>, swift::DeclAttributes&) + 3041
16 sil-opt 0x0000000000a093ba swift::Parser::parseDecl(llvm::SmallVectorImpl<swift::Decl*>&, swift::OptionSet<swift::Parser::ParseDeclFlags, unsigned int>) + 3306
18 sil-opt 0x00000000009fc0a3 swift::Parser::parseList(swift::tok, swift::SourceLoc, swift::SourceLoc&, swift::tok, bool, bool, swift::Diag<>, std::function<swift::ParserStatus ()>) + 723
19 sil-opt 0x0000000000a0d28e swift::Parser::parseDeclEnum(swift::OptionSet<swift::Parser::ParseDeclFlags, unsigned int>, swift::DeclAttributes&) + 1678
20 sil-opt 0x0000000000a0936b swift::Parser::parseDecl(llvm::SmallVectorImpl<swift::Decl*>&, swift::OptionSet<swift::Parser::ParseDeclFlags, unsigned int>) + 3227
21 sil-opt 0x0000000000a52c0e swift::Parser::parseBraceItems(llvm::SmallVectorImpl<swift::ASTNode>&, swift::BraceItemListKind, swift::BraceItemListKind) + 1902
22 sil-opt 0x00000000009fde5c swift::Parser::parseTopLevel() + 156
23 sil-opt 0x00000000009f931f swift::parseIntoSourceFile(swift::SourceFile&, unsigned int, bool*, swift::SILParserState*, swift::PersistentParserState*, swift::DelayedParsingCallbacks*) + 207
24 sil-opt 0x00000000007398f6 swift::CompilerInstance::performSema() + 2918
25 sil-opt 0x00000000007241dc main + 1916
Stack dump:
0. Program arguments: sil-opt -enable-sil-verify-all
1. With parser at source location: <stdin>:3:33
```