     }
 
     self._core = _StringCore(
-      baseAddress: reinterpretCast(start),
+      baseAddress: unsafeBitCast(start, COpaquePointer.self),
       count: length,
       elementShift: isUTF16 ? 1 : 0,
       hasCocoaBuffer: true,
-      owner: reinterpretCast(cfImmutableValue))
+      owner: unsafeBitCast(cfImmutableValue, Optional<AnyObject>.self))
   }
 }
 

    
    if _fastPath(_isBridgedVerbatimToObjectiveC(T.self)) {
      // Forced down-cast (possible deferred type-checking)
      return Array(_ArrayBuffer(reinterpretCast(source) as _CocoaArrayType))
    }

    var anyObjectArr: [AnyObject]
      = [AnyObject](_ArrayBuffer(reinterpretCast(source) as _CocoaArrayType))
    return _arrayBridgeFromObjectiveC(anyObjectArr)
  }


  }

  public func _bridgeToObjectiveC() -> NSArray {
    return unsafeBitCast(self._buffer._asCocoaArray(), NSArray.self)
  }

  public static func _bridgeFromObjectiveC(source: NSArray) -> Array {
