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