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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44968 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CodeGenModule.cpp b/CodeGen/CodeGenModule.cpp
index 47a0081..2df1877 100644
--- a/CodeGen/CodeGenModule.cpp
+++ b/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;