http://llvm.org/bugs/show_bug.cgi?id=10248

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@134327 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/__bit_reference b/include/__bit_reference
index 57b92ea..d62bec7 100644
--- a/include/__bit_reference
+++ b/include/__bit_reference
@@ -21,7 +21,13 @@
 template <class _C, bool _IsConst> class __bit_iterator;
 template <class _C> class __bit_const_reference;
 
-template <class _C>
+template <class _Tp>
+struct __has_storage_type
+{
+    static const bool value = false;
+};
+
+template <class _C, bool = __has_storage_type<_C>::value>
 class __bit_reference
 {
     typedef typename _C::__storage_type    __storage_type;
@@ -66,6 +72,11 @@
         : __seg_(__s), __mask_(__m) {}
 };
 
+template <class _C>
+class __bit_reference<_C, false>
+{
+};
+
 template <class _C, class _D>
 _LIBCPP_INLINE_VISIBILITY inline
 void