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-8968] Crash compiling mutually referring protocols with static var #51472

Closed
tjw opened this issue Oct 11, 2018 · 4 comments
Closed

[SR-8968] Crash compiling mutually referring protocols with static var #51472

tjw opened this issue Oct 11, 2018 · 4 comments
Assignees
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself

Comments

@tjw
Copy link
Contributor

tjw commented Oct 11, 2018

Previous ID SR-8968
Radar rdar://problem/45217645
Original Reporter @tjw
Type Bug
Status Resolved
Resolution Done

Attachment: Download

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

md5: 9ff1ebc46964420c59d14b05363bca6e

relates to:

  • SR-8966 Ordering of mutually referring protocols can provoke error

Issue Description:

This is similar to SR-8966, but crashes

Using the Xcode 10 tools, compile the attached sample with `static-var-protocol-crash.swift`. This results in a crash:

0  swift                    0x000000010f16a64a PrintStackTraceSignalHandler(void*) + 42
1  swift                    0x000000010f169dfe SignalHandler(int) + 302
2  libsystem_platform.dylib 0x00007fff656caf5a _sigtramp + 26
3  swift                    0x000000010c95703f swift::ProtocolConformance::getTypeWitnessAndDecl(swift::AssociatedTypeDecl*, swift::LazyResolver*, swift::SubstOptions) const + 463
4  swift                    0x000000010c92f290 swift::GenericSignatureBuilder::computeGenericSignature(swift::SourceLoc, bool, bool) && + 15168
5  swift                    0x000000010c960173 swift::RequirementEnvironment::RequirementEnvironment(swift::DeclContext*, swift::GenericSignature*, swift::ProtocolDecl*, swift::ClassDecl*, swift::ProtocolConformance*) + 3171
6  swift                    0x000000010c563daf swift::matchWitness(swift::TypeChecker&, swift::ProtocolDecl*, swift::ProtocolConformance*, swift::DeclContext*, swift::ValueDecl*, swift::ValueDecl*) + 415
7  swift                    0x000000010c566654 swift::WitnessChecker::findBestWitness(swift::ValueDecl*, bool*, swift::NormalProtocolConformance*, llvm::SmallVectorImpl<swift::RequirementMatch>&, unsigned int&, unsigned int&, bool&) + 932
8  swift                    0x000000010c570c85 swift::ConformanceChecker::resolveWitnessViaLookup(swift::ValueDecl*) + 725
9  swift                    0x000000010c56abfc swift::MultiConformanceChecker::checkIndividualConformance(swift::NormalProtocolConformance*, bool) + 11996
10 swift                    0x000000010c5678c2 swift::MultiConformanceChecker::checkAllConformances() + 162
11 swift                    0x000000010c580ac7 swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) + 4279
12 swift                    0x000000010c5caf94 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) + 2388
13 swift                    0x000000010c20559e swift::CompilerInstance::performSema() + 4238
14 swift                    0x000000010b3f259b performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 731
15 swift                    0x000000010b3eedc5 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 7717
16 swift                    0x000000010b394a35 main + 1349
17 libdyld.dylib            0x00007fff653bc015 start + 1
Stack dump:
0.  Program arguments: /Applications/Xcode-10.0-GM.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -primary-file static-var-protocol-crash.swift -target x86_64-apple-darwin17.7.0 -enable-objc-interop -sdk /Applications/Xcode-10.0-GM.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -color-diagnostics -module-name main -o /var/folders/sr/brdcywc56mq3qqzf36v_mtf00000gp/T/static-var-protocol-crash-07c095.o 
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: compile command failed due to signal 11 (use -v to see invocation)
@AnnaZaks
Copy link
Mannequin

AnnaZaks mannequin commented Oct 12, 2018

@swift-ci create

@tjw
Copy link
Contributor Author

tjw commented Oct 8, 2019

I'm no longer seeing this issue with Xcode 11.2b1.

@slavapestov
Copy link
Member

Thanks, I'll add a regression test.

@slavapestov
Copy link
Member

#28026

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 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
Projects
None yet
Development

No branches or pull requests

2 participants