Swift switch statement using tuples of enums with associated values fails
| Originator: | lee.gillen | ||
| Number: | rdar://30422712 | Date Originated: | 02/08/2017 |
| Status: | Open | Resolved: | |
| Product: | Xcode | Product Version: | 8.2.1 |
| Classification: | Serious Bug | Reproducible: | Always |
Summary:
I have a swift class used to define a state machine. This swift class has a switch using a tuple of enums with associated values. This switch results in an odd error "Command failed due to signal: Segmentation fault: 11" (see below for the logs).
Steps to Reproduce:
1. Use Xcode 8.2.1.
2. Open the SILlyCompile project I have attached
3. Compile it and note that it compiles
4. Uncomment lines as noted in the MyClass.swift file
5. Comple and note it fails with the error described
Expected Results:
It should compile.
Actual Results:
Command failed due to signal: Segmentation fault: 11
Compile logs:
CompileSwift normal x86_64 /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/MyClass.swift
cd /Users/sgillen/Desktop/SILlyCompile
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/ViewController.swift /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/AppDelegate.swift -primary-file /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/MyClass.swift -target x86_64-apple-ios10.2 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk -I /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator -F /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator -enable-testing -g -module-cache-path /Users/sgillen/Library/Developer/Xcode/DerivedData/ModuleCache -D DEBUG -serialize-debugging-options -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-generated-files.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-own-target-headers.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-all-target-headers.hmap -Xcc -iquote -Xcc /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-project-headers.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/DerivedSources/x86_64 -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/sgillen/Desktop/SILlyCompile -emit-module-doc-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass~partial.swiftdoc -Onone -module-name SILlyCompile -emit-module-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass~partial.swiftmodule -serialize-diagnostics-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.dia -emit-dependencies-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.d -emit-reference-dependencies-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.swiftdeps -o /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.o
0 swift 0x0000000105ca13ad PrintStackTraceSignalHandler(void*) + 45
1 swift 0x0000000105ca0b56 SignalHandler(int) + 790
2 libsystem_platform.dylib 0x00007fff8c07352a _sigtramp + 26
3 libsystem_platform.dylib 0x0000000100000000 _sigtramp + 1945684720
4 swift 0x00000001036f981e swift::Pattern::forEachVariable(std::__1::function<void (swift::VarDecl*)> const&) const + 222
5 swift 0x00000001036f97ab swift::Pattern::forEachVariable(std::__1::function<void (swift::VarDecl*)> const&) const + 107
6 swift 0x00000001036f97ab swift::Pattern::forEachVariable(std::__1::function<void (swift::VarDecl*)> const&) const + 107
7 swift 0x0000000102f13af7 (anonymous namespace)::PatternMatchEmission::getSharedCaseBlockDest(swift::CaseStmt*, bool) + 903
8 swift 0x0000000102f095e3 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&) + 291
9 swift 0x0000000102f0ed8a (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 20666
10 swift 0x0000000102f1313d 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&) + 3421
11 swift 0x0000000102f0c252 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 9602
12 swift 0x0000000102f1313d 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&) + 3421
13 swift 0x0000000102f0e8e8 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 19480
14 swift 0x0000000102f1313d 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&) + 3421
15 swift 0x0000000102f0e8e8 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 19480
16 swift 0x0000000102f1313d 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&) + 3421
17 swift 0x0000000102f0c252 (anonymous namespace)::PatternMatchEmission::emitDispatch((anonymous namespace)::ClauseMatrix&, llvm::ArrayRef<swift::Lowering::ConsumableManagedValue>, std::__1::function<void (swift::SILLocation)> const&) + 9602
18 swift 0x0000000102f08e09 swift::Lowering::SILGenFunction::emitSwitchStmt(swift::SwitchStmt*) + 2537
19 swift 0x0000000102f2b6d6 swift::ASTVisitor<(anonymous namespace)::StmtEmitter, void, void, void, void, void, void>::visit(swift::Stmt*) + 4022
20 swift 0x0000000102eebe1a swift::Lowering::SILGenFunction::emitFunction(swift::FuncDecl*) + 314
21 swift 0x0000000102e68055 swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*)::$_1::operator()(swift::SILFunction*) const + 1877
22 swift 0x0000000102e66c02 swift::Lowering::SILGenModule::emitFunction(swift::FuncDecl*) + 626
23 swift 0x0000000102f32777 (anonymous namespace)::SILGenType::emitType() + 1271
24 swift 0x0000000102f3220e swift::Lowering::SILGenModule::visitNominalTypeDecl(swift::NominalTypeDecl*) + 30
25 swift 0x0000000102e73973 swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*, unsigned int) + 1795
26 swift 0x0000000102e7562d swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*, llvm::Optional<unsigned int>, bool, bool) + 1629
27 swift 0x0000000102cade86 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*) + 19510
28 swift 0x0000000102ca72b3 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 17859
29 swift 0x0000000102c635cf main + 8239
30 libdyld.dylib 0x00007fff952975ad start + 1
31 libdyld.dylib 0x000000000000003e start + 1792445074
Stack dump:
0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/ViewController.swift /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/AppDelegate.swift -primary-file /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/MyClass.swift -target x86_64-apple-ios10.2 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk -I /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator -F /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator -enable-testing -g -module-cache-path /Users/sgillen/Library/Developer/Xcode/DerivedData/ModuleCache -D DEBUG -serialize-debugging-options -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-generated-files.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-own-target-headers.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-all-target-headers.hmap -Xcc -iquote -Xcc /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/SILlyCompile-project-headers.hmap -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/DerivedSources/x86_64 -Xcc -I/Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -working-directory/Users/sgillen/Desktop/SILlyCompile -emit-module-doc-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass~partial.swiftdoc -Onone -module-name SILlyCompile -emit-module-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass~partial.swiftmodule -serialize-diagnostics-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.dia -emit-dependencies-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.d -emit-reference-dependencies-path /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.swiftdeps -o /Users/sgillen/Library/Developer/Xcode/DerivedData/SILlyCompile-ctwhknebnpbiivfbiqpnnczodblj/Build/Intermediates/SILlyCompile.build/Debug-iphonesimulator/SILlyCompile.build/Objects-normal/x86_64/MyClass.o
1. While emitting SIL for 'updateMyState' at /Users/sgillen/Desktop/SILlyCompile/SILlyCompile/MyClass.swift:29:5
Version:
Xcode 8.2.1 on OS X 10.11.6 (15G1212).
Notes:
Configuration:
Attachments:
'SILlyCompile.zip' was successfully uploaded.
Code:
//
// MyClass.swift
// SILlyCompile
//
// Created by Stewart Gillen on 2/8/17.
// Copyright © 2017 Stewart Gillen. All rights reserved.
//
import UIKit
class MyClass: NSObject {
enum MyState {
enum Status {
case reserved
case tentative
case blocked
}
case none
case begin(status: Status)
case middle(status: Status)
case end(status: Status)
}
var myState = MyState.none
func updateMyState(newState: MyState) {
// I have copied the same switch statement 5 times below. The only changes are different lines commented out.
// The uncommented lines compile fine, but not when they are are combiled together.
switch (self.myState, newState) {
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
// case (.none, _):
// self.myState = newState
case (.begin(let beginStatus), .middle(let middleStatus)):
self.myState = .middle(status: middleStatus)
mergeState(.begin(status: beginStatus))
case (.middle, .begin(let beginStatus)),
(.begin, .begin(let beginStatus)):
mergeState(.begin(status: beginStatus))
default:
break;
}
switch (self.myState, newState) {
case (.none, _):
self.myState = newState
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
// case (.begin(let beginStatus), .middle(let middleStatus)):
// self.myState = .middle(status: middleStatus)
// mergeState(.begin(status: beginStatus))
case (.middle, .begin(let beginStatus)),
(.begin, .begin(let beginStatus)):
mergeState(.begin(status: beginStatus))
default:
break;
}
switch (self.myState, newState) {
case (.none, _):
self.myState = newState
case (.begin(let beginStatus), .middle(let middleStatus)):
self.myState = .middle(status: middleStatus)
mergeState(.begin(status: beginStatus))
case
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
// (.middle, .begin(let beginStatus))
// ,
(.begin, .begin(let beginStatus))
:
mergeState(.begin(status: beginStatus))
default:
break;
}
switch (self.myState, newState) {
case (.none, _):
self.myState = newState
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
case (.begin(let beginStatus), .middle(let middleStatus)):
self.myState = .middle(status: middleStatus)
mergeState(.begin(status: beginStatus))
case
(.middle, .begin(let beginStatus))
// UNCOMMENT THIS AND THE CODE COMPILE FAILS
// ,
// (.begin, .begin(let beginStatus))
:
mergeState(.begin(status: beginStatus))
default:
break;
}
// WORK AROUND: breaking up the last case also compiles SUCCESSFULLY
switch (self.myState, newState) {
case (.none, _):
self.myState = newState
case (.begin(let beginStatus), .middle(let middleStatus)):
self.myState = .middle(status: middleStatus)
mergeState(.begin(status: beginStatus))
// these two cases below were one case statement in the above switches
case (.middle, .begin(let beginStatus)):
mergeState(.begin(status: beginStatus))
case (.begin, .begin(let beginStatus)):
mergeState(.begin(status: beginStatus))
default:
break;
}
}
func mergeState(_ newState: MyState) {
// someday something awesome
}
}
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!