]> granicus.if.org Git - clang/commitdiff
Sema: Predefine size_t in MSVC Compatibility mode
authorDavid Majnemer <david.majnemer@gmail.com>
Tue, 14 Jan 2014 06:19:35 +0000 (06:19 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Tue, 14 Jan 2014 06:19:35 +0000 (06:19 +0000)
MSVC defines size_t without any explicit declarations.  This change
allows us to be compatible with TUs that depend on this declaration
appearing from nowhere.

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

lib/Sema/Sema.cpp
test/SemaCXX/MicrosoftCompatibility.cpp

index c824921a4f1de3c45cfcae4c34cfe0bdeb291bf1..a6d3e322d0f40c3dac32ff64273e176c2d2a6e68 100644 (file)
@@ -182,6 +182,8 @@ void Sema::Initialize() {
     if (IdResolver.begin(&Context.Idents.get("type_info")) == IdResolver.end())
       PushOnScopeChains(Context.buildImplicitRecord("type_info", TTK_Class),
                         TUScope);
+
+    addImplicitTypedef("size_t", Context.getSizeType());
   }
 
   // Initialize predefined OpenCL types.
index a914169bb6838be6389cee7049a5576acf7006dc..1f27deb0ee10b5159d86c24dbf22b605f70b5553 100644 (file)
@@ -24,6 +24,7 @@ void test()
 namespace ms_predefined_types {
   // ::type_info is a built-in forward class declaration.
   void f(const type_info &a);
+  void f(size_t);
 }