builtin id 0 is invalid, don't use a slot for it.

llvm-svn: 44968
diff --git a/clang/CodeGen/CodeGenModule.cpp b/clang/CodeGen/CodeGenModule.cpp
index 47a0081..2df1877 100644
--- a/clang/CodeGen/CodeGenModule.cpp
+++ b/clang/CodeGen/CodeGenModule.cpp
@@ -518,11 +518,13 @@
 
 /// getBuiltinLibFunction
 llvm::Function *CodeGenModule::getBuiltinLibFunction(unsigned BuiltinID) {
-  if (BuiltinFunctions.size() <= BuiltinID)
-    BuiltinFunctions.resize(BuiltinID+1);
+  if (BuiltinID > BuiltinFunctions.size())
+    BuiltinFunctions.resize(BuiltinID);
   
-  // Already available?
-  llvm::Function *&FunctionSlot = BuiltinFunctions[BuiltinID];
+  // Cache looked up functions.  Since builtin id #0 is invalid we don't reserve
+  // a slot for it.
+  assert(BuiltinID && "Invalid Builtin ID");
+  llvm::Function *&FunctionSlot = BuiltinFunctions[BuiltinID-1];
   if (FunctionSlot)
     return FunctionSlot;