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-9515] Compiler Crash on same-type constrained extension: Can't demangle #51967

Closed
nsalmoria opened this issue Dec 14, 2018 · 3 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 mangling Area → compiler: Mangling

Comments

@nsalmoria
Copy link
Contributor

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
@belkadan
Copy link
Contributor

cc @DougGregor, @jckarter

@DougGregor
Copy link
Member

We are getting a bogus type in the AST:

  (output=function_type escaping
    (input=function_params num_params=1
      (param
        (dependent_member_type assoc_type=t2.(file).P.A@t2.swift:2:20
          (base=struct_type decl=t2.(file).S1@t2.swift:5:8)))) 

@slavapestov
Copy link
Member

I fixed this a few weeks ago: #31871

@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 mangling Area → compiler: Mangling
Projects
None yet
Development

No branches or pull requests

5 participants