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-11869] Generic class with generic initializer and @Published property crashes the compiler #54283

Closed
sindresorhus opened this issue Nov 28, 2019 · 2 comments
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-11869
Radar rdar://problem/57549598
Original Reporter @sindresorhus
Type Bug
Status Resolved
Resolution Done
Environment

Swift 5.1

Xcode 11.2.1

macOS 10.15.1

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

md5: 497ef8466808c62eb8d5e73eba22f375

Issue Description:

The following crashes the Swift compiler:

@available(macOS 10.15, *)
final class Foo<A> {
    @Published var a: A

    init<B>(a: A, b: B) {
        self.a = a
    }
}
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 
1.  While emitting IR SIL function "@$s5SSKit3FooC1a1bACyxGx_qd__tclufc".
 for 'init(a:b:)' (at /Users/sindresorhus/dev/private/SSKit/SSKit/ViewController.swift:7:2)
0  swift                    0x000000010a5bba13 PrintStackTraceSignalHandler(void*) + 51
1  swift                    0x000000010a5bb1e6 SignalHandler(int) + 358
2  libsystem_platform.dylib 0x00007fff6ea5ab1d _sigtramp + 29
3  libsystem_platform.dylib 0x00007f9f0e58b560 _sigtramp + 2679310944
4  swift                    0x000000010648f615 emitDirectTypeMetadataRef(swift::irgen::IRGenFunction&, swift::CanType, swift::irgen::DynamicMetadataRequest) + 197
5  swift                    0x0000000106493f05 swift::irgen::IRGenFunction::emitTypeMetadataRef(swift::CanType, swift::irgen::DynamicMetadataRequest) + 149
6  swift                    0x00000001063d56b6 swift::irgen::emitGenericRequirementFromSubstitutions(swift::irgen::IRGenFunction&, swift::CanGenericSignature, swift::ModuleDecl&, swift::irgen::GenericRequirement, swift::SubstitutionMap) + 310
7  swift                    0x00000001063d54e4 void llvm::function_ref<void (swift::irgen::GenericRequirement)>::callback_fn<(anonymous namespace)::EmitPolymorphicArguments::emit(swift::SubstitutionMap, swift::irgen::WitnessMetadata*, swift::irgen::Explosion&)::$_21>(long, swift::irgen::GenericRequirement) + 36
8  swift                    0x00000001063d333d void llvm::function_ref<void (swift::irgen::GenericRequirement)>::callback_fn<(anonymous namespace)::PolymorphicConvention::enumerateUnfulfilledRequirements(llvm::function_ref<void (swift::irgen::GenericRequirement)> const&)::$_11>(long, swift::irgen::GenericRequirement) + 205
9  swift                    0x000000010713ac72 swift::GenericSignature::forEachParam(llvm::function_ref<void (swift::GenericTypeParamType*, bool)>) const + 690
10 swift                    0x00000001063d3162 (anonymous namespace)::PolymorphicConvention::enumerateUnfulfilledRequirements(llvm::function_ref<void (swift::irgen::GenericRequirement)> const&) + 82
11 swift                    0x00000001063d5265 swift::irgen::emitPolymorphicArguments(swift::irgen::IRGenFunction&, swift::CanTypeWrapper<swift::SILFunctionType>, swift::SubstitutionMap, swift::irgen::WitnessMetadata*, swift::irgen::Explosion&) + 485
12 swift                    0x000000010645e223 (anonymous namespace)::IRGenSILFunction::visitFullApplySite(swift::FullApplySite) + 2019
13 swift                    0x000000010643e8fa swift::irgen::IRGenModule::emitSILFunction(swift::SILFunction*) + 9834
14 swift                    0x00000001062eb080 swift::irgen::IRGenerator::emitGlobalTopLevel() + 1712
15 swift                    0x000000010641b675 performIRGeneration(swift::IRGenOptions&, swift::ModuleDecl*, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::StringRef, swift::PrimarySpecificPaths const&, llvm::LLVMContext&, swift::SourceFile*, llvm::GlobalVariable**) + 1189
16 swift                    0x0000000106207e31 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 36673
17 swift                    0x00000001061fb6e4 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 6820
18 swift                    0x0000000106188be3 main + 1219
19 libdyld.dylib            0x00007fff6e8592e5 start + 1
20 libdyld.dylib            0x000000000000004a start + 2440719718
error: Segmentation fault: 11 (in target 'SSKit' from project 'SSKit')
@beccadax
Copy link
Contributor

beccadax commented Dec 2, 2019

@swift-ci create

@aschwaighofer
Copy link
Member

This is fixed with a recent swift.org toolchain.

@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