r240969 - Make __has_extension(assume_nonnull) always true.

Douglas Gregor dgregor at apple.com
Mon Jun 29 10:25:49 PDT 2015


Author: dgregor
Date: Mon Jun 29 12:25:49 2015
New Revision: 240969

URL: http://llvm.org/viewvc/llvm-project?rev=240969&view=rev
Log:
Make __has_extension(assume_nonnull) always true.

Modified:
    cfe/trunk/lib/Lex/PPMacroExpansion.cpp
    cfe/trunk/test/SemaObjCXX/nullability-pragmas.mm

Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPMacroExpansion.cpp?rev=240969&r1=240968&r2=240969&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/PPMacroExpansion.cpp (original)
+++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp Mon Jun 29 12:25:49 2015
@@ -1226,6 +1226,7 @@ static bool HasExtension(const Preproces
   // 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)

Modified: cfe/trunk/test/SemaObjCXX/nullability-pragmas.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjCXX/nullability-pragmas.mm?rev=240969&r1=240968&r2=240969&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjCXX/nullability-pragmas.mm (original)
+++ cfe/trunk/test/SemaObjCXX/nullability-pragmas.mm Mon Jun 29 12:25:49 2015
@@ -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}}





More information about the cfe-commits mailing list