Hi David,
  Thanks for the suggestions.
  I am uploading a patch for implementing a msvc_keywords extension.
  - Gao

http://llvm-reviews.chandlerc.com/D3034

CHANGE SINCE LAST DIFF
  http://llvm-reviews.chandlerc.com/D3034?vs=7721&id=7788#toc

Files:
  lib/Lex/PPMacroExpansion.cpp
  test/Lexer/has_extension.c

Index: lib/Lex/PPMacroExpansion.cpp
===================================================================
--- lib/Lex/PPMacroExpansion.cpp
+++ lib/Lex/PPMacroExpansion.cpp
@@ -1040,6 +1040,7 @@
            .Case("cxx_binary_literals", true)
            .Case("cxx_init_captures", LangOpts.CPlusPlus11)
            .Case("cxx_variable_templates", LangOpts.CPlusPlus)
+           .Case("msvc_keywords", LangOpts.MicrosoftExt)
            .Default(false);
 }
 
Index: test/Lexer/has_extension.c
===================================================================
--- test/Lexer/has_extension.c
+++ test/Lexer/has_extension.c
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-PED-NONE %s
+// RUN: %clang_cc1 -E -fms-extensions %s -o - | FileCheck 
--check-prefix=CHECK-MS-EXT %s
 // RUN: %clang_cc1 -pedantic-errors -E %s -o - | FileCheck 
--check-prefix=CHECK-PED-ERR %s
 
 // CHECK-PED-NONE: no_dummy_extension
@@ -42,3 +43,11 @@
 #if __has_extension(__c_alignas__)
 int has_double_underscores();
 #endif
+
+// CHECK-PED-NONE: no_ms_keywords
+// CHECK-MS-EXT: has_ms_keywords
+#if __has_extension(msvc_keywords)
+int has_ms_keywords();
+#else
+int no_ms_keywords();
+#endif
Index: lib/Lex/PPMacroExpansion.cpp
===================================================================
--- lib/Lex/PPMacroExpansion.cpp
+++ lib/Lex/PPMacroExpansion.cpp
@@ -1040,6 +1040,7 @@
            .Case("cxx_binary_literals", true)
            .Case("cxx_init_captures", LangOpts.CPlusPlus11)
            .Case("cxx_variable_templates", LangOpts.CPlusPlus)
+           .Case("msvc_keywords", LangOpts.MicrosoftExt)
            .Default(false);
 }
 
Index: test/Lexer/has_extension.c
===================================================================
--- test/Lexer/has_extension.c
+++ test/Lexer/has_extension.c
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-PED-NONE %s
+// RUN: %clang_cc1 -E -fms-extensions %s -o - | FileCheck --check-prefix=CHECK-MS-EXT %s
 // RUN: %clang_cc1 -pedantic-errors -E %s -o - | FileCheck --check-prefix=CHECK-PED-ERR %s
 
 // CHECK-PED-NONE: no_dummy_extension
@@ -42,3 +43,11 @@
 #if __has_extension(__c_alignas__)
 int has_double_underscores();
 #endif
+
+// CHECK-PED-NONE: no_ms_keywords
+// CHECK-MS-EXT: has_ms_keywords
+#if __has_extension(msvc_keywords)
+int has_ms_keywords();
+#else
+int no_ms_keywords();
+#endif
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to