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-13957] Complier crash on Linux #56354

Open
sjavora opened this issue Dec 11, 2020 · 2 comments
Open

[SR-13957] Complier crash on Linux #56354

sjavora opened this issue Dec 11, 2020 · 2 comments
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 Linux Platform: Linux

Comments

@sjavora
Copy link
Contributor

sjavora commented Dec 11, 2020

Previous ID SR-13957
Radar rdar://problem/72227419
Original Reporter @sjavora
Type Bug
Environment

Official swift:5.3.1 docker image

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

md5: 8cf15760d657d8b98b2cd73592107f5c

Issue Description:

The following code crashes the complier in the Linux docker image:

@dynamicMemberLookup
public protocol Entity {    
    associatedtype Interface: Entity = Never
}

extension Entity {
    
    public var interface: Interface {
        fatalError("")
    }
    
    public subscript<Value>(dynamicMember keyPath: KeyPath<Interface, Value>) -> Value {
        interface[keyPath: keyPath]
    }
}

extension Never: Entity {}

Putting this into Entity.swift and running

swift Entity.swift

outputs:

swift: /home/buildnode/jenkins/workspace/oss-swift-5.3-package-linux-ubuntu-18_04/swift/lib/Sema/CSSimplify.cpp:9928: void swift::constraints::ConstraintSystem::addKeyPathApplicationRootConstraint(swift::Type, swift::constraints::ConstraintLocatorBuilder): Assertion `(path.size() == 1 && path[0].getKind() == ConstraintLocator::SubscriptMember) || (path.size() == 2 && path[1].getKind() == ConstraintLocator::KeyPathDynamicMember)' failed.
Stack dump:
0.  Program arguments: /usr/bin/swift -frontend -interpret Entity.swift -disable-objc-interop -color-diagnostics -module-name Entity 
1.  Swift version 5.3.1 (swift-5.3.1-RELEASE)
2.  While evaluating request TypeCheckSourceFileRequest(source_file "Entity.swift")
3.  While evaluating request TypeCheckFunctionBodyUntilRequest(Entity.(file).Entity extension._@Entity.swift:14:88, )
4.  While type-checking statement at [Entity.swift:14:88 - line:16:5] RangeText="{
        interface[keyPath: keyPath]
    "
5.  While type-checking statement at [Entity.swift:15:9 - line:15:35] RangeText="interface[keyPath: keyPath"
6.  While type-checking expression at [Entity.swift:15:9 - line:15:35] RangeText="interface[keyPath: keyPath"
/usr/bin/swift[0x51fa1b4]
/usr/bin/swift[0x51f7dae]
/usr/bin/swift[0x51fa48c]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f5b5c0bd980]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f5b5a728fb7]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f5b5a72a921]
/lib/x86_64-linux-gnu/libc.so.6(+0x3048a)[0x7f5b5a71a48a]
/lib/x86_64-linux-gnu/libc.so.6(+0x30502)[0x7f5b5a71a502]
/usr/bin/swift[0x12c6a56]
/usr/bin/swift[0x12c6b6f]
/usr/bin/swift[0x1351b38]
/usr/bin/swift[0x12c7a82]
/usr/bin/swift[0x134ff50]
/usr/bin/swift[0x12ba44c]
/usr/bin/swift[0x128a36f]
/usr/bin/swift[0x1350c85]
/usr/bin/swift[0x1352c2c]
/usr/bin/swift[0x12c7a82]
/usr/bin/swift[0x12c8290]
/usr/bin/swift[0x12dce76]
/usr/bin/swift[0x12f039d]
/usr/bin/swift[0x12efafa]
/usr/bin/swift[0x12d6402]
/usr/bin/swift[0x12d86ec]
/usr/bin/swift[0x12d81ff]
/usr/bin/swift[0x12d7c30]
/usr/bin/swift[0x13c54d1]
/usr/bin/swift[0x13c526e]
/usr/bin/swift[0x14804e1]
/usr/bin/swift[0x1480c6f]
/usr/bin/swift[0x147f6fa]
/usr/bin/swift[0x147c73f]
/usr/bin/swift[0x147b872]
/usr/bin/swift[0x1483b7e]
/usr/bin/swift[0x1483690]
/usr/bin/swift[0x148359e]
/usr/bin/swift[0x147c1b0]
/usr/bin/swift[0x147b35f]
/usr/bin/swift[0x14affd6]
/usr/bin/swift[0x14b1f40]
/usr/bin/swift[0x14b1ca7]
/usr/bin/swift[0x14b1bee]
/usr/bin/swift[0x14afc0e]
/usr/bin/swift[0x14afbe4]
/usr/bin/swift[0x6b6ac8]
/usr/bin/swift[0x6b5b2b]
/usr/bin/swift[0x6b52d0]
/usr/bin/swift[0x5605f7]
/usr/bin/swift[0x55f069]
/usr/bin/swift[0x4e8ce8]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f5b5a70bbf7]
/usr/bin/swift[0x4e888a]
Aborted

Works fine on macOS with Xcode 12.2 when running the same command.

@typesanitizer
Copy link

@swift-ci create

@LucianoPAlmeida
Copy link
Collaborator

This seems like the same problem as SR-13434

@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
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 Linux Platform: Linux
Projects
None yet
Development

No branches or pull requests

4 participants