Sema: Predefine size_t in MSVC Compatibility mode
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.
llvm-svn: 199190
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp
index c824921..a6d3e32 100644
--- a/clang/lib/Sema/Sema.cpp
+++ b/clang/lib/Sema/Sema.cpp
@@ -182,6 +182,8 @@
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.
diff --git a/clang/test/SemaCXX/MicrosoftCompatibility.cpp b/clang/test/SemaCXX/MicrosoftCompatibility.cpp
index a914169..1f27deb 100644
--- a/clang/test/SemaCXX/MicrosoftCompatibility.cpp
+++ b/clang/test/SemaCXX/MicrosoftCompatibility.cpp
@@ -24,6 +24,7 @@
namespace ms_predefined_types {
// ::type_info is a built-in forward class declaration.
void f(const type_info &a);
+ void f(size_t);
}