Make __has_extension(assume_nonnull) always true.

llvm-svn: 240969
diff --git a/clang/lib/Lex/PPMacroExpansion.cpp b/clang/lib/Lex/PPMacroExpansion.cpp
index ea0af92..3855c80 100644
--- a/clang/lib/Lex/PPMacroExpansion.cpp
+++ b/clang/lib/Lex/PPMacroExpansion.cpp
@@ -1226,6 +1226,7 @@
   // Because we inherit the feature list from HasFeature, this string switch
   // must be less restrictive than HasFeature's.
   return llvm::StringSwitch<bool>(Extension)
+           .Case("assume_nonnull", true)
            .Case("nullability", true)
            // C11 features supported by other languages as extensions.
            .Case("c_alignas", true)
diff --git a/clang/test/SemaObjCXX/nullability-pragmas.mm b/clang/test/SemaObjCXX/nullability-pragmas.mm
index 2047fd9..dbf4f37 100644
--- a/clang/test/SemaObjCXX/nullability-pragmas.mm
+++ b/clang/test/SemaObjCXX/nullability-pragmas.mm
@@ -7,6 +7,10 @@
 #  error assume_nonnull feature is not set
 #endif
 
+#if !__has_extension(assume_nonnull)
+#  error assume_nonnull extension is not set
+#endif
+
 void test_pragmas_1(A * _Nonnull a, AA * _Nonnull aa) {
   f1(0); // okay: no nullability annotations
   f2(0); // expected-warning{{null passed to a callee that requires a non-null argument}}