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
3.1
md5: a545da02adca998e1913031050b3b288
duplicates:
Issue Description:
Crash:
protocol Foo { } enum Bar { case aaa(Foo) case bbb(Foo) } func acceptBar(_ x: Bar) { /// Crash here switch x { case let .aaa(f), let .bbb(f): break } }
No crash if switch written as
func acceptBar(_ x: Bar) { switch x { case let .aaa(f): break case let .bbb(f): break } }
0 swift 0x00000001123deeb7 PrintStackTraceSignalHandler(void*) + 39 1 swift 0x00000001123de366 SignalHandler(int) + 646 2 libsystem_platform.dylib 0x00007fff8fa31b3a _sigtramp + 26 3 libsystem_platform.dylib 0x0000000000000002 _sigtramp + 1885136098 4 swift 0x000000010fe307be (anonymous namespace)::TypeClassifierBase<(anonymous namespace)::LowerType, swift::Lowering::TypeLowering const*>::visitExistentialType(swift::CanType) + 30 5 swift 0x000000010fe2fadc swift::Lowering::TypeConverter::getTypeLoweringForUncachedLoweredType(swift::Lowering::TypeConverter::TypeKey) + 76 6 swift 0x000000010fe2f318 swift::Lowering::TypeConverter::getTypeLowering(swift::Lowering::AbstractionPattern, swift::Type, unsigned int) + 2328 7 swift 0x000000010fa52413 swift::Lowering::emitBeginVarargs(swift::Lowering::SILGenFunction&, swift::SILLocation, swift::CanType, swift::CanType, unsigned int) + 675 8 swift 0x000000010f9fbfc1 (anonymous namespace)::ArgEmitter::emitShuffle(swift::Expr*, swift::Expr*, llvm::ArrayRef<swift::TupleTypeElt>, swift::ConcreteDeclRef, llvm::ArrayRef<swift::Expr*>, llvm::ArrayRef<int>, llvm::ArrayRef<unsigned int>, swift::Type, swift::Lowering::AbstractionPattern) + 2145 9 swift 0x000000010f9fa676 (anonymous namespace)::ArgEmitter::emitExpanded(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 1958 10 swift 0x000000010f9f7bde (anonymous namespace)::ArgEmitter::emit(swift::Lowering::ArgumentSource&&, swift::Lowering::AbstractionPattern) + 286 11 swift 0x000000010f9f7246 (anonymous namespace)::CallSite::emit(swift::Lowering::SILGenFunction&, swift::Lowering::AbstractionPattern, (anonymous namespace)::ParamLowering&, llvm::SmallVectorImpl<swift::Lowering::ManagedValue>&, llvm::SmallVectorImpl<std::__1::pair<swift::Lowering::LValue, swift::SILLocation> >&, llvm::Optional<swift::ForeignErrorConvention> const&, swift::ImportAsMemberStatus const&) && + 438 12 swift 0x000000010f9f459b (anonymous namespace)::CallEmission::apply(swift::Lowering::SGFContext) + 6123 13 swift 0x000000010fa402ec swift::ASTVisitor<(anonymous namespace)::RValueEmitter, swift::Lowering::RValue, void, void, void, void, void, swift::Lowering::SGFContext>::visit(swift::Expr*, swift::Lowering::SGFContext) + 124 14 swift 0x000000010fa9db73 swift::Lowering::SILGenFunction::emitReturnExpr(swift::SILLocation, swift::Expr*) + 467 15 swift 0x000000010fa99acc swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 188 16 swift 0x000000010fa9d268 swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 14424 17 swift 0x000000010fa798ca void llvm::function_ref<void ((anonymous namespace)::PatternMatchEmission&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, (anonymous namespace)::ClauseRow&)>::callback_fn<swift::Lowering::SILGenFunction::emitSwitchStmt(swift::SwitchStmt*)::$_1>(long, (anonymous namespace)::PatternMatchEmission&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, (anonymous namespace)::ClauseRow&) + 458 18 swift 0x000000010fa7b040 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 4448 19 swift 0x000000010fa82973 std::__1::__function::__func<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7, std::__1::allocator<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7>, void (llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>, std::__1::function<void (swift::SILLocation)> const&)>::operator()(llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>&&, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>&&, std::__1::function<void (swift::SILLocation)> const&) + 3219 20 swift 0x000000010fa7e9e0 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 19200 21 swift 0x000000010fa82973 std::__1::__function::__func<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7, std::__1::allocator<(anonymous namespace)::PatternMatchEmission::emitSpecializedDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, unsigned int&, unsigned int, std::__1::function<void (swift::SILLocation)> const&)::$_7>, void (llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>, std::__1::function<void (swift::SILLocation)> const&)>::operator()(llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>&&, llvm::ArrayRef<(anonymous namespace)::SpecializedRow>&&, std::__1::function<void (swift::SILLocation)> const&) + 3219 22 swift 0x000000010fa7d294 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 13236 23 swift 0x000000010fa790a3 swift::Lowering::SILGenFunction::emitSwitchStmt(swift::SwitchStmt*) + 2419 24 swift 0x000000010fa9d268 swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 14424 25 swift 0x000000010fa5c979 swift::Lowering::SILGenFunction::emitFunction(swift::FuncDecl*) + 409 26 swift 0x000000010f9ddd2b swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*)::$_1::operator()(swift::SILFunction*) const + 1867 27 swift 0x000000010f9dc902 swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*) + 642 28 swift 0x000000010faa357a swift::Lowering::SILGenModule::visitExtensionDecl(swift::ExtensionDecl*) + 634 29 swift 0x000000010f9ea33b swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*, unsigned int) + 1483 30 swift 0x000000010f9ebf19 swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*, llvm::Optional<unsigned int>, bool, bool) + 1593 31 swift 0x000000010f1fe0b2 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 42402 32 swift 0x000000010f1ad88c main + 9052 33 libdyld.dylib 0x00007fff8f822235 start + 1
The text was updated successfully, but these errors were encountered:
Duped
Sorry, something went wrong.
No branches or pull requests
Environment
3.1
Additional Detail from JIRA
md5: a545da02adca998e1913031050b3b288
duplicates:
Issue Description:
Crash:
No crash if switch written as
The text was updated successfully, but these errors were encountered: