Index: include/type_traits
===================================================================
--- include/type_traits	(revision 151820)
+++ include/type_traits	(working copy)
@@ -297,7 +297,7 @@
 
 // is_union
 
-#if __has_feature(is_union) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__is_union__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_union
     : public integral_constant<bool, __is_union(_Tp)> {};
@@ -312,7 +312,7 @@
 
 // is_class
 
-#if __has_feature(is_class) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__is_class__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_class
     : public integral_constant<bool, __is_class(_Tp)> {};
@@ -381,7 +381,7 @@
 
 // is_enum
 
-#if __has_feature(is_enum) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__is_enum__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_enum
     : public integral_constant<bool, __is_enum(_Tp)> {};
@@ -616,12 +616,12 @@
 
 // is_convertible
 
-#if __has_feature(is_convertible_to)
+#if __has_feature(__is_convertible_to__)
 
 template <class _T1, class _T2> struct _LIBCPP_VISIBLE is_convertible
     : public integral_constant<bool, __is_convertible_to(_T1, _T2)> {};
 
-#else  // __has_feature(is_convertible_to)
+#else  // __has_feature(__is_convertible_to__)
 
 namespace __is_convertible_imp
 {
@@ -723,7 +723,7 @@
     static const size_t __complete_check2 = __is_convertible_check<_T2>::__v;
 };
 
-#endif  // __has_feature(is_convertible_to)
+#endif  // __has_feature(__is_convertible_to__)
 
 // is_base_of
 
@@ -733,21 +733,21 @@
 struct _LIBCPP_VISIBLE is_base_of
     : public integral_constant<bool, __is_base_of(_Bp, _Dp)> {};
 
-#else  // __has_feature(is_base_of)
+#else  // __has_feature(__is_base_of__)
 
 #error is_base_of not implemented.
 
-#endif  // __has_feature(is_base_of)
+#endif  // __has_feature(__is_base_of__)
 
 // is_empty
 
-#if __has_feature(is_empty)
+#if __has_feature(__is_empty__)
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_empty
     : public integral_constant<bool, __is_empty(_Tp)> {};
 
-#else  // __has_feature(is_empty)
+#else  // __has_feature(__is_empty__)
 
 template <class _Tp>
 struct __is_empty1
@@ -768,11 +768,11 @@
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_empty : public __libcpp_empty<_Tp> {};
 
-#endif  // __has_feature(is_empty)
+#endif  // __has_feature(__is_empty__)
 
 // is_polymorphic
 
-#if __has_feature(is_polymorphic)
+#if __has_feature(__is_polymorphic__)
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_polymorphic
@@ -792,11 +792,11 @@
 template <class _Tp> struct _LIBCPP_VISIBLE is_polymorphic
     : public __libcpp_polymorphic<_Tp> {};
 
-#endif // __has_feature(is_polymorphic)
+#endif // __has_feature(__is_polymorphic__)
 
 // has_virtual_destructor
 
-#if __has_feature(has_virtual_destructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_virtual_destructor__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
 
 template <class _Tp> struct _LIBCPP_VISIBLE has_virtual_destructor
     : public integral_constant<bool, __has_virtual_destructor(_Tp)> {};
@@ -1478,7 +1478,7 @@
     typedef _Rp _ReturnType;
 };
 
-#if __has_feature(cxx_reference_qualified_functions)
+#if __has_feature(__cxx_reference_qualified_functions__)
 
 template <class _Rp, class _Class, class ..._Param>
 struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &, true, false>
@@ -1536,7 +1536,7 @@
     typedef _Rp _ReturnType;
 };
 
-#endif  // __has_feature(cxx_reference_qualified_functions)
+#endif  // __has_feature(__cxx_reference_qualified_functions__)
 
 #else  // _LIBCPP_HAS_NO_VARIADICS
 
@@ -2219,7 +2219,7 @@
 
 #ifndef _LIBCPP_HAS_NO_VARIADICS
 
-#if __has_feature(is_trivially_constructible)
+#if __has_feature(__is_trivially_constructible__)
 
 template <class _Tp, class... _Args>
 struct _LIBCPP_VISIBLE is_trivially_constructible
@@ -2227,7 +2227,7 @@
 {
 };
 
-#else  // !__has_feature(is_trivially_constructible)
+#else  // !__has_feature(__is_trivially_constructible__)
 
 template <class _Tp, class... _Args>
 struct _LIBCPP_VISIBLE is_trivially_constructible
@@ -2237,7 +2237,7 @@
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_trivially_constructible<_Tp>
-#if __has_feature(has_trivial_constructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_trivial_constructor__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_trivial_constructor(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2267,7 +2267,7 @@
 {
 };
 
-#endif  // !__has_feature(is_trivially_constructible)
+#endif  // !__has_feature(__is_trivially_constructible__)
 
 #else  // _LIBCPP_HAS_NO_VARIADICS
 
@@ -2278,7 +2278,7 @@
 {
 };
 
-#if __has_feature(is_trivially_constructible)
+#if __has_feature(__is_trivially_constructible__)
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_trivially_constructible<_Tp, __is_construct::__nat,
@@ -2308,7 +2308,7 @@
 {
 };
 
-#else  // !__has_feature(is_trivially_constructible)
+#else  // !__has_feature(__is_trivially_constructible__)
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_trivially_constructible<_Tp, __is_construct::__nat,
@@ -2338,7 +2338,7 @@
 {
 };
 
-#endif  // !__has_feature(is_trivially_constructible)
+#endif  // !__has_feature(__is_trivially_constructible__)
 
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 
@@ -2366,7 +2366,7 @@
 
 // is_trivially_assignable
 
-#if __has_feature(is_trivially_constructible)
+#if __has_feature(__is_trivially_constructible__)
 
 template <class _Tp, class _Arg>
 struct is_trivially_assignable
@@ -2374,7 +2374,7 @@
 {
 };
 
-#else  // !__has_feature(is_trivially_constructible)
+#else  // !__has_feature(__is_trivially_constructible__)
 
 template <class _Tp, class _Arg>
 struct is_trivially_assignable
@@ -2400,7 +2400,7 @@
 
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
-#endif  // !__has_feature(is_trivially_constructible)
+#endif  // !__has_feature(__is_trivially_constructible__)
 
 // is_trivially_copy_assignable
 
@@ -2422,7 +2422,7 @@
 
 // is_trivially_destructible
 
-#if __has_feature(has_trivial_destructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_trivial_destructor__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_trivially_destructible
     : public integral_constant<bool, __has_trivial_destructor(_Tp)> {};
@@ -2442,7 +2442,7 @@
 
 #ifndef _LIBCPP_HAS_NO_VARIADICS
 
-#if __has_feature(cxx_noexcept)
+#if __has_feature(__cxx_noexcept__)
 
 template <bool, class _Tp, class... _Args> struct __is_nothrow_constructible;
 
@@ -2470,7 +2470,7 @@
 {
 };
 
-#else  // __has_feature(cxx_noexcept)
+#else  // __has_feature(__cxx_noexcept__)
 
 template <class _Tp, class... _Args>
 struct _LIBCPP_VISIBLE is_nothrow_constructible
@@ -2480,7 +2480,7 @@
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_constructible<_Tp>
-#if __has_feature(has_nothrow_constructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_constructor__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_constructor(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2494,7 +2494,7 @@
 #else
 struct _LIBCPP_VISIBLE is_nothrow_constructible<_Tp, _Tp>
 #endif
-#if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_copy__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_copy(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2504,7 +2504,7 @@
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_constructible<_Tp, const _Tp&>
-#if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_copy__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_copy(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2514,7 +2514,7 @@
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_constructible<_Tp, _Tp&>
-#if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_copy__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_copy(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2522,7 +2522,7 @@
 {
 };
 
-#endif  // __has_feature(cxx_noexcept)
+#endif  // __has_feature(__cxx_noexcept__)
 
 #else  // _LIBCPP_HAS_NO_VARIADICS
 
@@ -2536,7 +2536,7 @@
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_constructible<_Tp, __is_construct::__nat,
                                                        __is_construct::__nat>
-#if __has_feature(has_nothrow_constructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_constructor__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_constructor(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2547,7 +2547,7 @@
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_constructible<_Tp, _Tp,
                                                        __is_construct::__nat>
-#if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_copy__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_copy(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2558,7 +2558,7 @@
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_constructible<_Tp, const _Tp&,
                                                        __is_construct::__nat>
-#if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_copy__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_copy(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2569,7 +2569,7 @@
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_constructible<_Tp, _Tp&,
                                                        __is_construct::__nat>
-#if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_copy__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_copy(_Tp)>
 #else
     : integral_constant<bool, is_scalar<_Tp>::value>
@@ -2603,7 +2603,7 @@
 
 // is_nothrow_assignable
 
-#if __has_feature(cxx_noexcept)
+#if __has_feature(__cxx_noexcept__)
 
 template <bool, class _Tp, class _Arg> struct __is_nothrow_assignable;
 
@@ -2625,7 +2625,7 @@
 {
 };
 
-#else  // __has_feature(cxx_noexcept)
+#else  // __has_feature(__cxx_noexcept__)
 
 template <class _Tp, class _Arg>
 struct _LIBCPP_VISIBLE is_nothrow_assignable
@@ -2633,7 +2633,7 @@
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_assignable<_Tp&, _Tp>
-#if __has_feature(has_nothrow_assign) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_assign__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_assign(_Tp)> {};
 #else
     : integral_constant<bool, is_scalar<_Tp>::value> {};
@@ -2641,7 +2641,7 @@
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_assignable<_Tp&, _Tp&>
-#if __has_feature(has_nothrow_assign) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_assign__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_assign(_Tp)> {};
 #else
     : integral_constant<bool, is_scalar<_Tp>::value> {};
@@ -2649,7 +2649,7 @@
 
 template <class _Tp>
 struct _LIBCPP_VISIBLE is_nothrow_assignable<_Tp&, const _Tp&>
-#if __has_feature(has_nothrow_assign) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_assign__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_assign(_Tp)> {};
 #else
     : integral_constant<bool, is_scalar<_Tp>::value> {};
@@ -2659,7 +2659,7 @@
 
 template <class _Tp>
 struct is_nothrow_assignable<_Tp&, _Tp&&>
-#if __has_feature(has_nothrow_assign) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__has_nothrow_assign__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
     : integral_constant<bool, __has_nothrow_assign(_Tp)> {};
 #else
     : integral_constant<bool, is_scalar<_Tp>::value> {};
@@ -2667,7 +2667,7 @@
 
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
-#endif  // __has_feature(cxx_noexcept)
+#endif  // __has_feature(__cxx_noexcept__)
 
 // is_nothrow_copy_assignable
 
@@ -2689,7 +2689,7 @@
 
 // is_nothrow_destructible
 
-#if __has_feature(cxx_noexcept)
+#if __has_feature(__cxx_noexcept__)
 
 template <bool, class _Tp> struct __is_nothrow_destructible;
 
@@ -2746,7 +2746,7 @@
 
 // is_pod
 
-#if __has_feature(is_pod) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if __has_feature(__is_pod__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_pod
     : public integral_constant<bool, __is_pod(_Tp)> {};
@@ -2764,7 +2764,7 @@
 // is_literal_type;
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_literal_type
-#if __has_feature(is_literal)
+#if __has_feature(__is_literal__)
     : public integral_constant<bool, __is_literal(_Tp)>
 #else
     : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value ||
@@ -2775,7 +2775,7 @@
 // is_standard_layout;
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_standard_layout
-#if __has_feature(is_standard_layout)
+#if __has_feature(__is_standard_layout__)
     : public integral_constant<bool, __is_standard_layout(_Tp)>
 #else
     : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value>
@@ -2785,7 +2785,7 @@
 // is_trivially_copyable;
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_trivially_copyable
-#if __has_feature(is_trivially_copyable)
+#if __has_feature(__is_trivially_copyable__)
     : public integral_constant<bool, __is_trivially_copyable(_Tp)>
 #else
     : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value>
@@ -2795,7 +2795,7 @@
 // is_trivial;
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_trivial
-#if __has_feature(is_trivial)
+#if __has_feature(__is_trivial__)
     : public integral_constant<bool, __is_trivial(_Tp)>
 #else
     : integral_constant<bool, is_trivially_copyable<_Tp>::value &&
@@ -2881,7 +2881,7 @@
 {
 };
 
-#if __has_feature(cxx_reference_qualified_functions)
+#if __has_feature(__cxx_reference_qualified_functions__)
 
 template <class _Rp, class _Class, class ..._Param>
 struct __check_complete<_Rp (_Class::*)(_Param...) &>
@@ -3072,7 +3072,7 @@
 {
 };
 
-#if __has_feature(cxx_noexcept)
+#if __has_feature(__cxx_noexcept__)
 
 template <bool, class _Tp>
 struct __is_nothrow_swappable_imp
@@ -3093,7 +3093,7 @@
 {
 };
 
-#else  // __has_feature(cxx_noexcept)
+#else  // __has_feature(__cxx_noexcept__)
 
 template <class _Tp>
 struct __is_nothrow_swappable
@@ -3101,7 +3101,7 @@
 {
 };
 
-#endif  // __has_feature(cxx_noexcept)
+#endif  // __has_feature(__cxx_noexcept__)
 
 #ifdef _LIBCXX_UNDERLYING_TYPE
 
Index: include/memory
===================================================================
--- include/memory	(revision 151820)
+++ include/memory	(working copy)
@@ -1974,12 +1974,12 @@
 template <class _T1, class _T2, bool = is_same<typename remove_cv<_T1>::type,
                                                      typename remove_cv<_T2>::type>::value,
                                 bool = is_empty<_T1>::value
-#if __has_feature(is_final)
+#if __has_feature(__is_final__)
                                        && !__is_final(_T1)
 #endif
                                 ,
                                 bool = is_empty<_T2>::value
-#if __has_feature(is_final)
+#if __has_feature(__is_final__)
                                        && !__is_final(_T2)
 #endif
          >
Index: include/atomic
===================================================================
--- include/atomic	(revision 151820)
+++ include/atomic	(working copy)
@@ -532,7 +532,7 @@
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
-#if !__has_feature(cxx_atomic)
+#if !__has_feature(__cxx_atomic__)
 #error <atomic> is not implemented
 #else
 
@@ -1508,7 +1508,7 @@
 #define ATOMIC_LONG_LOCK_FREE 0
 #define ATOMIC_LLONG_LOCK_FREE 0
 
-#endif  //  !__has_feature(cxx_atomic)
+#endif  //  !__has_feature(__cxx_atomic__)
 
 _LIBCPP_END_NAMESPACE_STD
 
Index: include/unordered_map
===================================================================
--- include/unordered_map	(revision 151820)
+++ include/unordered_map	(working copy)
@@ -326,7 +326,7 @@
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 template <class _Key, class _Tp, class _Hash, bool = is_empty<_Hash>::value
-#if __has_feature(is_final)
+#if __has_feature(__is_final__)
                                          && !__is_final(_Hash)
 #endif
          >
@@ -387,7 +387,7 @@
 };
 
 template <class _Key, class _Tp, class _Pred, bool = is_empty<_Pred>::value
-#if __has_feature(is_final)
+#if __has_feature(__is_final__)
                                          && !__is_final(_Pred)
 #endif
          >
Index: include/new
===================================================================
--- include/new	(revision 151820)
+++ include/new	(working copy)
@@ -92,7 +92,7 @@
 }  // std
 
 _LIBCPP_VISIBLE void* operator new(std::size_t __sz)
-#if !__has_feature(cxx_noexcept)
+#if !__has_feature(__cxx_noexcept__)
     throw(std::bad_alloc)
 #endif
 ;
@@ -101,7 +101,7 @@
 _LIBCPP_VISIBLE void  operator delete(void* __p, const std::nothrow_t&) _NOEXCEPT;
 
 _LIBCPP_VISIBLE void* operator new[](std::size_t __sz)
-#if !__has_feature(cxx_noexcept)
+#if !__has_feature(__cxx_noexcept__)
     throw(std::bad_alloc)
 #endif
 ;
Index: include/tuple
===================================================================
--- include/tuple	(revision 151820)
+++ include/tuple	(working copy)
@@ -206,7 +206,7 @@
 // __tuple_leaf
 
 template <size_t _Ip, class _Hp, bool=is_empty<_Hp>::value
-#if __has_feature(is_final)
+#if __has_feature(__is_final__)
                                  && !__is_final(_Hp)
 #endif
          >
Index: include/map
===================================================================
--- include/map	(revision 151820)
+++ include/map	(working copy)
@@ -382,7 +382,7 @@
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 template <class _Key, class _Tp, class _Compare, bool = is_empty<_Compare>::value
-#if __has_feature(is_final)
+#if __has_feature(__is_final__)
                                                         && !__is_final(_Compare)
 #endif
          >
Index: include/__config
===================================================================
--- include/__config	(revision 151820)
+++ include/__config	(working copy)
@@ -144,13 +144,13 @@
 
 #if defined(__clang__)
 
-#if __has_feature(cxx_alignas)
+#if __has_feature(__cxx_alignas__)
 #  define _ALIGNAS(x) alignas(x)
 #else
 #  define _ALIGNAS(x) __attribute__((__aligned__(x)))
 #endif
 
-#if !__has_feature(cxx_alias_templates)
+#if !__has_feature(__cxx_alias_templates__)
 #define _LIBCPP_HAS_NO_TEMPLATE_ALIASES
 #endif
 
@@ -163,23 +163,23 @@
 #endif
 #endif
 
-#if !(__has_feature(cxx_exceptions))
+#if !(__has_feature(__cxx_exceptions__))
 #define _LIBCPP_NO_EXCEPTIONS
 #endif
 
-#if !(__has_feature(cxx_rtti))
+#if !(__has_feature(__cxx_rtti__))
 #define _LIBCPP_NO_RTTI
 #endif
 
-#if !(__has_feature(cxx_strong_enums))
+#if !(__has_feature(__cxx_strong_enums__))
 #define _LIBCPP_HAS_NO_STRONG_ENUMS
 #endif
 
-#if !(__has_feature(cxx_decltype))
+#if !(__has_feature(__cxx_decltype__))
 #define _LIBCPP_HAS_NO_DECLTYPE
 #endif
 
-#if __has_feature(cxx_attributes)
+#if __has_feature(__cxx_attributes__)
 #  define _ATTRIBUTE(x) [[x]]
 #else
 #  define _ATTRIBUTE(x) __attribute__ ((x))
@@ -187,65 +187,65 @@
 
 #define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
 
-#if !(__has_feature(cxx_deleted_functions))
+#if !(__has_feature(__cxx_deleted_functions__))
 #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
-#endif  // !(__has_feature(cxx_deleted_functions))
+#endif  // !(__has_feature(__cxx_deleted_functions__))
 
-#if !(__has_feature(cxx_lambdas))
+#if !(__has_feature(__cxx_lambdas__))
 #define _LIBCPP_HAS_NO_LAMBDAS
 #endif
 
-#if !(__has_feature(cxx_nullptr))
+#if !(__has_feature(__cxx_nullptr__))
 #define _LIBCPP_HAS_NO_NULLPTR
 #endif
 
-#if !(__has_feature(cxx_rvalue_references))
+#if !(__has_feature(__cxx_rvalue_references__))
 #define _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif
 
-#if !(__has_feature(cxx_static_assert))
+#if !(__has_feature(__cxx_static_assert__))
 #define _LIBCPP_HAS_NO_STATIC_ASSERT
 #endif
 
-#if !(__has_feature(cxx_auto_type))
+#if !(__has_feature(__cxx_auto_type__))
 #define _LIBCPP_HAS_NO_AUTO_TYPE
 #endif
 
-#if !(__has_feature(cxx_access_control_sfinae)) || !__has_feature(cxx_trailing_return)
+#if !(__has_feature(__cxx_access_control_sfinae__)) || !__has_feature(__cxx_trailing_return__)
 #define _LIBCPP_HAS_NO_ADVANCED_SFINAE
 #endif
 
-#if !(__has_feature(cxx_variadic_templates))
+#if !(__has_feature(__cxx_variadic_templates__))
 #define _LIBCPP_HAS_NO_VARIADICS
 #endif
 
-#if !(__has_feature(cxx_trailing_return))
+#if !(__has_feature(__cxx_trailing_return__))
 #define _LIBCPP_HAS_NO_TRAILING_RETURN
 #endif
 
-#if !(__has_feature(cxx_generalized_initializers))
+#if !(__has_feature(__cxx_generalized_initializers__))
 #define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 #endif
 
-#if __has_feature(is_base_of)
+#if __has_feature(__is_base_of__)
 #  define _LIBCP_HAS_IS_BASE_OF
 #endif
 
 // Objective-C++ features (opt-in)
-#if __has_feature(objc_arc)
+#if __has_feature(__objc_arc__)
 #define _LIBCPP_HAS_OBJC_ARC
 #endif
 
-#if __has_feature(objc_arc_weak)
+#if __has_feature(__objc_arc_weak__)
 #define _LIBCPP_HAS_OBJC_ARC_WEAK
 #define _LIBCPP_HAS_NO_STRONG_ENUMS
 #endif
 
-#if !(__has_feature(cxx_constexpr))
+#if !(__has_feature(__cxx_constexpr__))
 #define _LIBCPP_HAS_NO_CONSTEXPR
 #endif
 
-#if (__has_feature(cxx_noexcept))
+#if (__has_feature(__cxx_noexcept__))
 #  define _NOEXCEPT noexcept
 #  define _NOEXCEPT_(x) noexcept(x)
 #else
@@ -253,7 +253,7 @@
 #  define _NOEXCEPT_(x)
 #endif
 
-#if __has_feature(underlying_type)
+#if __has_feature(__underlying_type__)
 #  define _LIBCXX_UNDERLYING_TYPE(T) __underlying_type(T)
 #endif
 
@@ -387,7 +387,7 @@
 #define __has_feature(__x) 0
 #endif
 
-#if __has_feature(cxx_explicit_conversions)
+#if __has_feature(__cxx_explicit_conversions__)
 #   define _LIBCPP_EXPLICIT explicit
 #else
 #   define _LIBCPP_EXPLICIT
Index: src/new.cpp
===================================================================
--- src/new.cpp	(revision 151820)
+++ src/new.cpp	(working copy)
@@ -33,7 +33,7 @@
 __attribute__((__weak__, __visibility__("default")))
 void *
 operator new(std::size_t size)
-#if !__has_feature(cxx_noexcept)
+#if !__has_feature(__cxx_noexcept__)
     throw(std::bad_alloc)
 #endif
 {
@@ -79,7 +79,7 @@
 __attribute__((__weak__, __visibility__("default")))
 void*
 operator new[](size_t size)
-#if !__has_feature(cxx_noexcept)
+#if !__has_feature(__cxx_noexcept__)
     throw(std::bad_alloc)
 #endif
 {
