Skip to content

[SR-9515] Compiler Crash on same-type constrained extension: Can't demangle #51967

@nsalmoria

Description

@nsalmoria
Previous ID SR-9515
Radar None
Original Reporter @nsalmoria
Type Bug
Status Resolved
Resolution Done
Environment

Xcode 10.1, both with default toolchain and with Development Snapshot 2018-12-10

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

md5: 63b6884fbb7a415cdc3412b26607c511

Issue Description:

This code crashes both Swift 4.2 and Development Snapshot 2018-12-10.

protocol P {
    associatedtype A
}

struct S1: P {
    typealias A = Int
}

struct S2<G: P> {
}

extension S2 where G == S1 {
    func crash(_: G.A) -> Void {
    }
}

Using the Development Snapshot, the crash log is:

Can't demangle: $s8Demangle2S2VA2A2S1VRszrlE5crashyyAE1AqaF
Stack dump:
0.  Program arguments: /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2018-12-10-a.xctoolchain/usr/bin/swift -frontend -c /Users/nicolasalmoria/Documents/BugReportCompilerCrash5/Demangle/main.swift -emit-module-path /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Objects-normal/x86_64/Demangle.swiftmodule -emit-module-doc-path /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Objects-normal/x86_64/Demangle.swiftdoc -serialize-diagnostics-path /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Objects-normal/x86_64/Demangle-master.dia -emit-objc-header-path /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Objects-normal/x86_64/Demangle-Swift.h -emit-dependencies-path /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Objects-normal/x86_64/Demangle-master.d -target x86_64-apple-macosx10.13 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -I /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Products/Release -F /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Products/Release -g -module-cache-path /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 4.2 -O -serialize-debugging-options -Xcc -I/Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Demangle-generated-files.hmap -Xcc -I/Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Demangle-own-target-headers.hmap -Xcc -I/Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Demangle-all-target-headers.hmap -Xcc -iquote -Xcc /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Demangle-project-headers.hmap -Xcc -I/Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Products/Release/include -Xcc -I/Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/DerivedSources/x86_64 -Xcc -I/Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/DerivedSources -Xcc -working-directory/Users/nicolasalmoria/Documents/BugReportCompilerCrash5 -module-name Demangle -num-threads 4 -o /Users/nicolasalmoria/Library/Developer/Xcode/DerivedData/Demangle-auebdoxmocvtridtpszzvekqluni/Build/Intermediates.noindex/Demangle.build/Release/Demangle.build/Objects-normal/x86_64/main.o 
1.  While emitting SIL for 'crash(_:)' (at /Users/nicolasalmoria/Documents/BugReportCompilerCrash5/Demangle/main.swift:13:5)
0  swift                    0x000000010fabfc78 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  swift                    0x000000010fabeef5 llvm::sys::RunSignalHandlers() + 85
2  swift                    0x000000010fac0282 SignalHandler(int) + 258
3  libsystem_platform.dylib 0x00007fff5b7aeb3d _sigtramp + 29
4  libsystem_platform.dylib 0x00007ffee3d592a0 _sigtramp + 2287642496
5  libsystem_c.dylib        0x00007fff5b66c1c9 abort + 127
6  swift                    0x000000010d2ab219 swift::Mangle::Mangler::verify(llvm::StringRef) + 1033
7  swift                    0x000000010d2aaddd swift::Mangle::Mangler::finalize() + 221
8  swift                    0x000000010d159834 swift::Mangle::ASTMangler::mangleEntity(swift::ValueDecl const*, bool, swift::Mangle::ASTMangler::SymbolKind) + 164
9  swift                    0x000000010ccaaa3c swift::SILDeclRef::mangle(swift::SILDeclRef::ManglingKind) const + 1772
10 swift                    0x000000010ccf86c7 swift::SILFunctionBuilder::getOrCreateFunction(swift::SILLocation, swift::SILDeclRef, swift::ForDefinition_t, swift::ProfileCounter) + 55
11 swift                    0x000000010c768cad swift::Lowering::SILGenModule::getFunction(swift::SILDeclRef, swift::ForDefinition_t) + 317
12 swift                    0x000000010c7694be swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*) + 622
13 swift                    0x000000010c85207a swift::ASTVisitor<SILGenExtension, void, void, void, void, void, void>::visit(swift::Decl*) + 138
14 swift                    0x000000010c84f4bb SILGenExtension::emitExtension(swift::ExtensionDecl*) + 59
15 swift                    0x000000010c84f475 swift::Lowering::SILGenModule::visitExtensionDecl(swift::ExtensionDecl*) + 21
16 swift                    0x000000010c76e8f6 swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*) + 822
17 swift                    0x000000010c76f8f3 swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*) + 371
18 swift                    0x000000010c76fe00 swift::performSILGeneration(swift::ModuleDecl*, swift::SILOptions&) + 16
19 swift                    0x000000010bef718f performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 9183
20 swift                    0x000000010bef3d42 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2978
21 swift                    0x000000010bea5b1e main + 686
22 libdyld.dylib            0x00007fff5b5c3ed9 start + 1
error: Abort trap: 6

Metadata

Metadata

Assignees

Labels

bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.compilerThe Swift compiler itselfcrashBug: A crash, i.e., an abnormal termination of softwaremanglingArea → compiler: Mangling

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions