]> granicus.if.org Git - clang/commitdiff
Add __has_feature(cxx_raw_string_literals) and
authorDouglas Gregor <dgregor@apple.com>
Tue, 1 Nov 2011 01:23:44 +0000 (01:23 +0000)
committerDouglas Gregor <dgregor@apple.com>
Tue, 1 Nov 2011 01:23:44 +0000 (01:23 +0000)
__has_feature(cxx_unicode_literals), from Michel Morin!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143412 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Lex/PPMacroExpansion.cpp
test/Lexer/has_feature_cxx0x.cpp

index fd04b8a37945fbd617ce1dd0c4e01823f3d25cb4..5ef91be219dd36368d3810141d2dab9e9668306d 100644 (file)
@@ -642,13 +642,13 @@ static bool HasFeature(const Preprocessor &PP, const IdentifierInfo *II) {
            .Case("cxx_nullptr", LangOpts.CPlusPlus0x)
            .Case("cxx_override_control", LangOpts.CPlusPlus0x)
            .Case("cxx_range_for", LangOpts.CPlusPlus0x)
-         //.Case("cxx_raw_string_literals", false)
+           .Case("cxx_raw_string_literals", LangOpts.CPlusPlus0x)
            .Case("cxx_reference_qualified_functions", LangOpts.CPlusPlus0x)
            .Case("cxx_rvalue_references", LangOpts.CPlusPlus0x)
            .Case("cxx_strong_enums", LangOpts.CPlusPlus0x)
            .Case("cxx_static_assert", LangOpts.CPlusPlus0x)
            .Case("cxx_trailing_return", LangOpts.CPlusPlus0x)
-         //.Case("cxx_unicode_literals", false)
+           .Case("cxx_unicode_literals", LangOpts.CPlusPlus0x)
          //.Case("cxx_unrestricted_unions", false)
          //.Case("cxx_user_literals", false)
            .Case("cxx_variadic_templates", LangOpts.CPlusPlus0x)
index eff9cfb892fd1fbeb37d656d1252941915bc72dd..a22cf64c205d6598b74e2e2da029d2b5481af205 100644 (file)
@@ -190,3 +190,21 @@ int no_alignas();
 
 // CHECK-0X: has_alignas
 // CHECK-NO-0X: no_alignas
+
+#if __has_feature(cxx_raw_string_literals)
+int has_raw_string_literals();
+#else
+int no_raw_string_literals();
+#endif
+
+// CHECK-0X: has_raw_string_literals
+// CHECK-NO-0X: no_raw_string_literals
+
+#if __has_feature(cxx_unicode_literals)
+int has_unicode_literals();
+#else
+int no_unicode_literals();
+#endif
+
+// CHECK-0X: has_unicode_literals
+// CHECK-NO-0X: no_unicode_literals