]> granicus.if.org Git - clang/commitdiff
builtin id 0 is invalid, don't use a slot for it.
authorChris Lattner <sabre@nondot.org>
Thu, 13 Dec 2007 00:38:03 +0000 (00:38 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 13 Dec 2007 00:38:03 +0000 (00:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44968 91177308-0d34-0410-b5e6-96231b3b80d8

CodeGen/CodeGenModule.cpp

index 47a0081b7b1cf31afc6a45ce11f8d89390e09130..2df1877e79cda2d4e7a71f7d30402eccae280c27 100644 (file)
@@ -518,11 +518,13 @@ void CodeGenModule::EmitGlobalVarDeclarator(const FileVarDecl *D) {
 
 /// 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;