Add prototype info for __builtin_memcpy, reducing #diagnostics from 37 to 34 on 
PR1750


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43435 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/Builtins.cpp b/AST/Builtins.cpp
index 3fb3faf..5a470ff 100644
--- a/AST/Builtins.cpp
+++ b/AST/Builtins.cpp
@@ -130,6 +130,10 @@
     else
       Type = Context.CharTy;
     break;
+  case 'z':  // size_t.
+    assert(!Long && !Signed && !Unsigned && "Bad modifiers for 'z'!");
+    Type = Context.getSizeType();
+    break;
   case 'F':
     Type = Context.getCFConstantStringType();
     break;
diff --git a/include/clang/AST/Builtins.def b/include/clang/AST/Builtins.def
index d26d7cf..546c8cf 100644
--- a/include/clang/AST/Builtins.def
+++ b/include/clang/AST/Builtins.def
@@ -29,6 +29,7 @@
 //  i -> int
 //  f -> float
 //  d -> double
+//  z -> size_t
 //  F -> constant CFString
 //  V -> __builtin_va_list
 //  . -> "...".  This may only occur at the end of the function list.
@@ -63,5 +64,6 @@
 BUILTIN(__builtin_va_start, "vV&.", "n")
 BUILTIN(__builtin_va_end, "vV&", "n")
 BUILTIN(__builtin_va_copy, "vV&V", "n")
+BUILTIN(__builtin_memcpy, "v*v*vC*z", "n")
 
 #undef BUILTIN