[cfe-commits] r160612 - in /cfe/trunk: include/clang/Basic/TokenKinds.def lib/Basic/IdentifierTable.cpp test/SemaCXX/MicrosoftCompatibility.cpp
Sean Silva
silvas at purdue.edu
Sun Jul 22 13:33:50 PDT 2012
--- cfe/trunk/lib/Basic/IdentifierTable.cpp (original)
+++ cfe/trunk/lib/Basic/IdentifierTable.cpp Sun Jul 22 06:32:41 2012
@@ -103,7 +103,8 @@
KEYOPENCL = 0x200,
KEYC11 = 0x400,
KEYARC = 0x800,
- KEYALL = 0x0fff
+ KEYALL = 0x0fff,
+ KEYNOMS = 0x1000
};
}
This doesn't look right to me. Isn't KEYALL is supposed to be a
bitmask of all the keyword flags? KEYALL should be last and have the
value 0x1fff.
--Sean Silva
On Sun, Jul 22, 2012 at 5:32 AM, Francois Pichet <pichet2000 at gmail.com> wrote:
> Author: fpichet
> Date: Sun Jul 22 06:32:41 2012
> New Revision: 160612
>
> URL: http://llvm.org/viewvc/llvm-project?rev=160612&view=rev
> Log:
> char16_t and char32_t are defined via typedef in MSVC 11 RC. So introduce a way to disable keywords under Microsoft mode.
>
> Modified:
> cfe/trunk/include/clang/Basic/TokenKinds.def
> cfe/trunk/lib/Basic/IdentifierTable.cpp
> cfe/trunk/test/SemaCXX/MicrosoftCompatibility.cpp
>
> Modified: cfe/trunk/include/clang/Basic/TokenKinds.def
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/TokenKinds.def?rev=160612&r1=160611&r2=160612&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/TokenKinds.def (original)
> +++ cfe/trunk/include/clang/Basic/TokenKinds.def Sun Jul 22 06:32:41 2012
> @@ -211,6 +211,8 @@
> // KEYCXX0X - This is a C++ keyword introduced to C++ in C++0x
> // KEYGNU - This is a keyword if GNU extensions are enabled
> // KEYMS - This is a keyword if Microsoft extensions are enabled
> +// KEYNOMS - This is a keyword that must never be enabled under
> +// Microsoft mode
> // KEYOPENCL - This is a keyword in OpenCL
> // KEYALTIVEC - This is a keyword in AltiVec
> // KEYBORLAND - This is a keyword if Borland extensions are enabled
> @@ -311,8 +313,8 @@
> // C++0x keywords
> KEYWORD(alignas , KEYCXX0X)
> KEYWORD(alignof , KEYCXX0X)
> -KEYWORD(char16_t , KEYCXX0X)
> -KEYWORD(char32_t , KEYCXX0X)
> +KEYWORD(char16_t , KEYCXX0X|KEYNOMS)
> +KEYWORD(char32_t , KEYCXX0X|KEYNOMS)
> KEYWORD(constexpr , KEYCXX0X)
> KEYWORD(decltype , KEYCXX0X)
> KEYWORD(noexcept , KEYCXX0X)
>
> Modified: cfe/trunk/lib/Basic/IdentifierTable.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/IdentifierTable.cpp?rev=160612&r1=160611&r2=160612&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Basic/IdentifierTable.cpp (original)
> +++ cfe/trunk/lib/Basic/IdentifierTable.cpp Sun Jul 22 06:32:41 2012
> @@ -103,7 +103,8 @@
> KEYOPENCL = 0x200,
> KEYC11 = 0x400,
> KEYARC = 0x800,
> - KEYALL = 0x0fff
> + KEYALL = 0x0fff,
> + KEYNOMS = 0x1000
> };
> }
>
> @@ -136,6 +137,9 @@
> else if (LangOpts.ObjC2 && (Flags & KEYARC)) AddResult = 2;
> else if (LangOpts.CPlusPlus && (Flags & KEYCXX0X)) AddResult = 3;
>
> + // Don't add this keyword under MicrosoftMode.
> + if (LangOpts.MicrosoftMode && (Flags & KEYNOMS))
> + return;
> // Don't add this keyword if disabled in this language.
> if (AddResult == 0) return;
>
>
> Modified: cfe/trunk/test/SemaCXX/MicrosoftCompatibility.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/MicrosoftCompatibility.cpp?rev=160612&r1=160611&r2=160612&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaCXX/MicrosoftCompatibility.cpp (original)
> +++ cfe/trunk/test/SemaCXX/MicrosoftCompatibility.cpp Sun Jul 22 06:32:41 2012
> @@ -1,6 +1,8 @@
> // RUN: %clang_cc1 %s -triple i686-pc-win32 -fsyntax-only -std=c++11 -Wmicrosoft -verify -fms-compatibility -fexceptions -fcxx-exceptions
>
>
> +typedef unsigned short char16_t;
> +typedef unsigned int char32_t;
>
> namespace ms_conversion_rules {
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list