[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