Skip to content
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

[SR-12199] Segmentation fault: 11 (on associatedtype constraint with enum) #54624

Closed
swift-ci opened this issue Feb 13, 2020 · 2 comments
Closed
Assignees
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself crash Bug: A crash, i.e., an abnormal termination of software

Comments

@swift-ci
Copy link
Collaborator

Previous ID SR-12199
Radar None
Original Reporter Dajchan (JIRA User)
Type Bug
Status Closed
Resolution Done
Environment

XCode: Version 11.3.1 (11C504)

Apple Swift version 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15)

Target: x86_64-apple-darwin18.7.0

Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug, CompilerCrash
Assignee @theblixguy
Priority Medium

md5: fd03c761855f47021dbdc82481bc2ebc

Issue Description:

Compile segfaults on specialization of a generic protocol with an enum

import Foundation

protocol ChangeReason: RawRepresentable, Equatable {

}

protocol Link {
  associatedtype Reason: ChangeReason

}

enum BleLinkStateReason: Int, ChangeReason {
  typealias RawValue = Int
  case bar
}

protocol BleLink: Link where Reason == BleLinkStateReason {
  associatedtype Reason: BleLinkStateReason
}
Stack dump:
0.  Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -primary-file /Projects/TestTerminal/TestTerminal/main.swift -emit-module-path /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/Objects-normal/x86_64/main~partial.swiftmodule -emit-module-doc-path /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/Objects-normal/x86_64/main~partial.swiftdoc -serialize-diagnostics-path /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/Objects-normal/x86_64/main.dia -emit-dependencies-path /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/Objects-normal/x86_64/main.d -emit-reference-dependencies-path /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/Objects-normal/x86_64/main.swiftdeps -target x86_64-apple-macos10.14 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -I /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Products/Debug -F /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Products/Debug -enable-testing -g -module-cache-path /Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity=checked -Onone -D DEBUG -serialize-debugging-options -Xcc -working-directory -Xcc /Projects/TestTerminal -enable-anonymous-context-mangled-names -Xcc -I/Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/swift-overrides.hmap -Xcc -iquote -Xcc /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/TestTerminal-generated-files.hmap -Xcc -I/Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/TestTerminal-own-target-headers.hmap -Xcc -I/Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/TestTerminal-all-target-headers.hmap -Xcc -iquote -Xcc /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/TestTerminal-project-headers.hmap -Xcc -I/Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Products/Debug/include -Xcc -I/Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/DerivedSources-normal/x86_64 -Xcc -I/Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/DerivedSources/x86_64 -Xcc -I/Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/DerivedSources -Xcc -DDEBUG=1 -module-name TestTerminal -o /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Build/Intermediates.noindex/TestTerminal.build/Debug/TestTerminal.build/Objects-normal/x86_64/main.o -index-store-path /Library/Developer/Xcode/DerivedData/TestTerminal-dczoxeadorsrqffoieetctzlqcdy/Index/DataStore -index-system-modules 
1.  While type-checking 'BleLink' (at /Projects/TestTerminal/TestTerminal/main.swift:17:1)
2.  While validating 'BleLink' (at /Projects/TestTerminal/TestTerminal/main.swift:17:1)
0  swift                    0x000000010f28ba63 PrintStackTraceSignalHandler(void*) + 51
1  swift                    0x000000010f28b236 SignalHandler(int) + 358
2  libsystem_platform.dylib 0x00007fff587c6b5d _sigtramp + 29
3  libsystem_platform.dylib 000000000000000000 _sigtramp + 2810418368
4  swift                    0x000000010be21402 formProtocolRelativeType(swift::ProtocolDecl*, swift::Type, swift::Type) + 354
5  swift                    0x000000010be21402 formProtocolRelativeType(swift::ProtocolDecl*, swift::Type, swift::Type) + 354
6  swift                    0x000000010be20967 swift::GenericSignatureBuilder::FloatingRequirementSource::getSource(swift::GenericSignatureBuilder&, swift::Type) const + 455
7  swift                    0x000000010be1e8a3 swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind, swift::ModuleDecl*) + 3123
8  swift                    0x000000010be2789b swift::GenericSignatureBuilder::ConstraintResult llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>::callback_fn<swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*)::$_34>(long, swift::Type, swift::TypeRepr const*) + 475
9  swift                    0x000000010be27a0b std::__1::__function::__func<visitInherited(llvm::PointerUnion<swift::TypeDecl*, swift::ExtensionDecl*>, llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>)::$_73, std::__1::allocator<visitInherited(llvm::PointerUnion<swift::TypeDecl*, swift::ExtensionDecl*>, llvm::function_ref<swift::GenericSignatureBuilder::ConstraintResult (swift::Type, swift::TypeRepr const*)>)::$_73>, void (swift::Type, swift::TypeRepr const*)>::operator()(swift::Type&&, swift::TypeRepr const*&&) + 155
10 swift                    0x000000010be25f0d swift::GenericSignatureBuilder::addInheritedRequirements(swift::TypeDecl*, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::RequirementSource const*, swift::ModuleDecl*) + 621
11 swift                    0x000000010be23bab swift::GenericSignatureBuilder::expandConformanceRequirement(swift::GenericSignatureBuilder::ResolvedType, swift::ProtocolDecl*, swift::GenericSignatureBuilder::RequirementSource const*, bool) + 1243
12 swift                    0x000000010be1e5c1 swift::GenericSignatureBuilder::addTypeRequirement(llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, llvm::PointerUnion<swift::GenericSignatureBuilder::PotentialArchetype*, swift::Type>, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::GenericSignatureBuilder::UnresolvedHandlingKind, swift::ModuleDecl*) + 2385
13 swift                    0x000000010be258df swift::GenericSignatureBuilder::addRequirement(swift::Requirement const&, swift::RequirementRepr const*, swift::GenericSignatureBuilder::FloatingRequirementSource, swift::SubstitutionMap const*, swift::ModuleDecl*) + 1199
14 swift                    0x000000010bdd03c1 swift::ProtocolDecl::computeRequirementSignature() + 2049
15 swift                    0x000000010ba656cb swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) + 75
16 swift                    0x000000010ba2d93d swift::TypeChecker::validateDecl(swift::ValueDecl*) + 893
17 swift                    0x000000010ba26dc1 (anonymous namespace)::DeclChecker::visit(swift::Decl*) + 2241
18 swift                    0x000000010bae6bc6 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 1702
19 swift                    0x000000010b1d9117 swift::CompilerInstance::performSemaUpTo(swift::SourceFile::ASTStage_t) + 4679
20 swift                    0x000000010aeccd66 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 806
21 swift                    0x000000010aec9234 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 6820
22 swift                    0x000000010ae56733 main + 1219
23 libdyld.dylib            0x00007fff585db3d5 start + 1
error: Segmentation fault: 11 (in target 'TestTerminal' from project 'TestTerminal')
@theblixguy
Copy link
Collaborator

Fixed by #29813 Please verify using the next available development snapshot and close this issue.

@swift-ci
Copy link
Collaborator Author

Comment by Jonathan Cichon (JIRA)

Verified fix with snapshot 20.02.20. Now a

constrained to non-protocol, non-class type

error is emitted and no crash occurs.

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@AnthonyLatsis AnthonyLatsis added the crash Bug: A crash, i.e., an abnormal termination of software label Dec 12, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself crash Bug: A crash, i.e., an abnormal termination of software
Projects
None yet
Development

No branches or pull requests

3 participants