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-11858] Self initializer used in extension of itself crashes the compiler #54267

Closed
sindresorhus opened this issue Nov 26, 2019 · 2 comments
Closed
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself

Comments

@sindresorhus
Copy link

Previous ID SR-11858
Radar rdar://problem/57494717
Original Reporter @sindresorhus
Type Bug
Status Resolved
Resolution Done
Environment

Swift 5.1
Xcode 11.2.1

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

md5: ed99908fd1190e41578a2c312462429c

Issue Description:

This compiles fine:

import Cocoa

extension CAMediaTimingFunction {
    static let linear = CAMediaTimingFunction(name: .linear)
}

This crashes Swift:

import Cocoa

extension CAMediaTimingFunction {
    static let linear = Self(name: .linear)
}
Segmentation fault: 11

Stack dump:
0.  Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/sindresorhus/dev/private/SSKit/SSKit/util.swift -primary-file /Users/sindresorhus/dev/private/SSKit/SSKit/ViewController.swift /Users/sindresorhus/dev/private/SSKit/SSKit/extra.swift /Users/sindresorhus/dev/private/SSKit/SSKit/AppDelegate.swift -emit-module-path /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/Objects-normal/x86_64/ViewController~partial.swiftmodule -emit-module-doc-path /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/Objects-normal/x86_64/ViewController~partial.swiftdoc -serialize-diagnostics-path /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/Objects-normal/x86_64/ViewController.dia -emit-dependencies-path /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/Objects-normal/x86_64/ViewController.d -emit-reference-dependencies-path /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/Objects-normal/x86_64/ViewController.swiftdeps -target x86_64-apple-macos10.14.4 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -I /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Products/Debug -F /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Products/Debug -enable-testing -g -module-cache-path /Users/sindresorhus/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity=checked -Onone -D DEBUG -serialize-debugging-options -Xcc -working-directory -Xcc /Users/sindresorhus/dev/private/SSKit -enable-anonymous-context-mangled-names -Xcc -I/Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/SSKit-generated-files.hmap -Xcc -I/Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/SSKit-own-target-headers.hmap -Xcc -I/Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/SSKit-all-target-headers.hmap -Xcc -iquote -Xcc /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/SSKit-project-headers.hmap -Xcc -I/Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Products/Debug/include -Xcc -I/Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/DerivedSources-normal/x86_64 -Xcc -I/Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/DerivedSources/x86_64 -Xcc -I/Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/DerivedSources -Xcc -DDEBUG=1 -module-name SSKit -o /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Build/Intermediates.noindex/SSKit.build/Debug/SSKit.build/Objects-normal/x86_64/ViewController.o -index-store-path /Users/sindresorhus/Library/Developer/Xcode/DerivedData/SSKit-fuqcwavkiryflibkisabfpeaxzwe/Index/DataStore -index-system-modules 
0  swift                    0x000000010dfa1a13 PrintStackTraceSignalHandler(void*) + 51
1  swift                    0x000000010dfa11e6 SignalHandler(int) + 358
2  libsystem_platform.dylib 0x00007fff6ea5ab1d _sigtramp + 29
3  libsystem_platform.dylib 0x0000000000000400 _sigtramp + 2438617344
4  swift                    0x000000010a4fbd18 swift::MetatypeInst::create(swift::SILDebugLocation, swift::SILType, swift::SILFunction*, swift::SILOpenedArchetypesState&) + 72
5  swift                    0x0000000109fad604 swift::SILBuilder::createMetatype(swift::SILLocation, swift::SILType) + 148
6  swift                    0x000000010a01cdcb swift::Lowering::SILGenBuilder::createMetatype(swift::SILLocation, swift::SILType) + 187
7  swift                    0x000000010a04f978 swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 18552
8  swift                    0x000000010a04b6bc swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 1468
9  swift                    0x0000000109fed17b (anonymous namespace)::ArgEmitter::emit(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 4475
10 swift                    0x0000000109ffe127 (anonymous namespace)::ArgEmitter::emitTopLevel(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 935
11 swift                    0x0000000109ffdb2d (anonymous namespace)::CallSite::emit(swift::Lowering::SILGenFunction&, swift::Lowering::AbstractionPattern, swift::CanTypeWrapper<swift::SILFunctionType>, (anonymous namespace)::ParamLowering&, llvm::SmallVectorImpl<swift::Lowering::ManagedValue>&, llvm::SmallVectorImpl<(anonymous namespace)::DelayedArgument>&, llvm::Optional<swift::ForeignErrorConvention> const&, swift::ImportAsMemberStatus) && + 701
12 swift                    0x0000000109ffacab (anonymous namespace)::CallEmission::emitArgumentsForNormalApply(swift::CanTypeWrapper<swift::FunctionType>&, swift::Lowering::AbstractionPattern&, swift::CanTypeWrapper<swift::SILFunctionType>, llvm::Optional<swift::ForeignErrorConvention> const&, swift::ImportAsMemberStatus, llvm::SmallVectorImpl<swift::Lowering::ManagedValue>&, llvm::Optional<swift::SILLocation>&, swift::CanTypeWrapper<swift::FunctionType>&) + 1451
13 swift                    0x0000000109ff8763 (anonymous namespace)::CallEmission::apply(swift::Lowering::SGFContext) + 3059
14 swift                    0x0000000109ff4a1b swift::Lowering::SILGenFunction::emitApplyExpr(swift::Expr*, swift::Lowering::SGFContext) + 2331
15 swift                    0x000000010a04bbec swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 2796
16 swift                    0x000000010a04af23 swift::Lowering::SILGenFunction::emitExprInto(swift::Expr*, swift::Lowering::Initialization*, llvm::Optional<swift::SILLocation>) + 131
17 swift                    0x000000010a03e31c swift::Lowering::SILGenFunction::emitPatternBinding(swift::PatternBindingDecl*, unsigned int) + 268
18 swift                    0x000000010a07b321 swift::Lowering::SILGenModule::emitGlobalInitialization(swift::PatternBindingDecl*, unsigned int) + 2417
19 swift                    0x000000010a0d2332 swift::Lowering::SILGenModule::visitExtensionDecl(swift::ExtensionDecl*) + 370
20 swift                    0x0000000109fe6806 swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*) + 1238
21 swift                    0x0000000109fe8266 swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*) + 1238
22 swift                    0x0000000109bebda4 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 28340
23 swift                    0x0000000109be16e4 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 6820
24 swift                    0x0000000109b6ebe3 main + 1219
25 libdyld.dylib            0x00007fff6e8592e5 start + 1
26 libdyld.dylib            0x000000000000004a start + 2440719718
error: Segmentation fault: 11 (in target 'SSKit' from project 'SSKit')
@typesanitizer
Copy link

@swift-ci create

@theblixguy
Copy link
Collaborator

Doesn't crash on master:

/Users/suyashsrijan/Desktop/test.swift:4:13: error: stored property cannot have covariant 'Self' type
        static let linear = Self(name: .linear)
                   ^
/Users/suyashsrijan/Desktop/test.swift:4:22: error: covariant 'Self' type cannot be referenced from a stored property initializer
        static let linear = Self(name: .linear)
                            ^

@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

3 participants