Skip to content

Commit 51cd628

Browse files
[swiftc (106 vs. 5183)] Add crasher in swift::TypeBase::getDesugaredType(...)
Add test case for crash triggered in `swift::TypeBase::getDesugaredType(...)`. Current number of unresolved compiler crashers: 106 (5183 resolved) Stack trace: ``` #0 0x00000000031cec28 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x31cec28) #1 0x00000000031cf476 SignalHandler(int) (/path/to/swift/bin/swift+0x31cf476) #2 0x00007f13d7765330 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x10330) swiftlang#3 0x0000000000dde6b0 swift::TypeBase::getDesugaredType() (/path/to/swift/bin/swift+0xdde6b0) swiftlang#4 0x0000000000ba7f9e swift::TypeChecker::addImplicitConstructors(swift::NominalTypeDecl*)::$_4::operator()(swift::ConstructorDecl*) const (/path/to/swift/bin/swift+0xba7f9e) swiftlang#5 0x0000000000ba709f swift::TypeChecker::addImplicitConstructors(swift::NominalTypeDecl*) (/path/to/swift/bin/swift+0xba709f) swiftlang#6 0x0000000000b9ab15 swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0xb9ab15) swiftlang#7 0x0000000000b9bbac swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) (/path/to/swift/bin/swift+0xb9bbac) swiftlang#8 0x0000000000c1142f resolveTypeDecl(swift::TypeChecker&, swift::TypeDecl*, swift::SourceLoc, swift::DeclContext*, swift::GenericIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc1142f) swiftlang#9 0x0000000000c1037e resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc1037e) swiftlang#10 0x0000000000c07cd1 resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc07cd1) swiftlang#11 0x0000000000c079cd swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc079cd) swiftlang#12 0x0000000000c08ae8 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0xc08ae8) swiftlang#13 0x0000000000c089df swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc089df) swiftlang#14 0x0000000000c07169 swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc07169) swiftlang#15 0x0000000000b99ee2 swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0xb99ee2) swiftlang#16 0x0000000000b9bbac swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) (/path/to/swift/bin/swift+0xb9bbac) swiftlang#17 0x0000000000bab4e2 (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0xbab4e2) swiftlang#18 0x0000000000ba22c6 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0xba22c6) swiftlang#19 0x0000000000ba2116 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0xba2116) swiftlang#20 0x0000000000c0178f swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0xc0178f) swiftlang#21 0x0000000000c008b5 (anonymous namespace)::StmtChecker::typeCheckBody(swift::BraceStmt*&) (/path/to/swift/bin/swift+0xc008b5) swiftlang#22 0x0000000000c00e66 swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) (/path/to/swift/bin/swift+0xc00e66) swiftlang#23 0x0000000000c1eeec swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0xc1eeec) swiftlang#24 0x0000000000b8db24 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0xb8db24) swiftlang#25 0x0000000000b90c55 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*) (/path/to/swift/bin/swift+0xb90c55) swiftlang#26 0x0000000000b90e5d swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int) (/path/to/swift/bin/swift+0xb90e5d) swiftlang#27 0x0000000000ba6008 validatePatternBindingDecl(swift::TypeChecker&, swift::PatternBindingDecl*, unsigned int) (/path/to/swift/bin/swift+0xba6008) swiftlang#28 0x0000000000ba21da (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0xba21da) swiftlang#29 0x0000000000ba2116 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0xba2116) swiftlang#30 0x0000000000c0178f swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0xc0178f) swiftlang#31 0x0000000000c01006 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0xc01006) swiftlang#32 0x0000000000c14f6a swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0xc14f6a) swiftlang#33 0x0000000000938136 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x938136) swiftlang#34 0x000000000047ece5 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x47ece5) swiftlang#35 0x000000000047db7f swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x47db7f) swiftlang#36 0x000000000044509a main (/path/to/swift/bin/swift+0x44509a) swiftlang#37 0x00007f13d5f0ef45 __libc_start_main /build/eglibc-oGUzwX/eglibc-2.19/csu/libc-start.c:321:0 swiftlang#38 0x0000000000442816 _start (/path/to/swift/bin/swift+0x442816) ```
1 parent 1238e3a commit 51cd628

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// RUN: not --crash %target-swift-frontend %s -parse
2+
3+
// Distributed under the terms of the MIT license
4+
// Test case submitted to project by https://github.com/practicalswift (practicalswift)
5+
// Test case found by fuzzing
6+
7+
var e={class A:A{init()}class A:A

0 commit comments

Comments
 (0)