Index: test/Lexer/has_feature_cxx0x.cpp
===================================================================
--- test/Lexer/has_feature_cxx0x.cpp	(revision 220262)
+++ test/Lexer/has_feature_cxx0x.cpp	(working copy)
@@ -407,6 +407,16 @@
 // CHECK-11: no_decltype_auto
 // CHECK-NO-11: no_decltype_auto
 
+#if __has_feature(cxx_digit_separators)
+int has_digit_separators();
+#else
+int no_digit_separators();
+#endif
+
+// CHECK-1Y: has_digit_separators
+// CHECK-11: no_digit_separators
+// CHECK-NO-11: no_digit_separators
+
 #if __has_feature(cxx_generic_lambdas)
 int has_generic_lambdas();
 #else
Index: docs/LanguageExtensions.rst
===================================================================
--- docs/LanguageExtensions.rst	(revision 220262)
+++ docs/LanguageExtensions.rst	(working copy)
@@ -751,6 +751,13 @@
 ``__has_extension(cxx_aggregate_nsdmi)`` to determine if support
 for default initializers in aggregate members is enabled.
 
+C++1y digit separators
+^^^^^^^^^^^^^^^^^^^^^^
+
+Use ``__has_feature(cxx_digit_separators)`` or
+``__has_extension(cxx_digit_separators)`` to determine if support for
+digit separators using single quotes (for instance, ``10'000``) is enabled.
+
 C++1y generalized lambda capture
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
Index: lib/Lex/PPMacroExpansion.cpp
===================================================================
--- lib/Lex/PPMacroExpansion.cpp	(revision 220262)
+++ lib/Lex/PPMacroExpansion.cpp	(working copy)
@@ -957,6 +957,7 @@
            .Case("cxx_binary_literals", LangOpts.CPlusPlus14)
            .Case("cxx_contextual_conversions", LangOpts.CPlusPlus14)
            .Case("cxx_decltype_auto", LangOpts.CPlusPlus14)
+           .Case("cxx_digit_separators", LangOpts.CPlusPlus14)
            .Case("cxx_generic_lambdas", LangOpts.CPlusPlus14)
            .Case("cxx_init_captures", LangOpts.CPlusPlus14)
            .Case("cxx_relaxed_constexpr", LangOpts.CPlusPlus14)
