aboutsummaryrefslogtreecommitdiff
path: root/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-12-13 00:38:03 +0000
committerChris Lattner <sabre@nondot.org>2007-12-13 00:38:03 +0000
commit1426fecdf90dd1986751b9940422e675880ff671 (patch)
treeb66dd2753c5bd6076f43da398951bea47bc0754c /CodeGen/CodeGenModule.cpp
parenta1fa3a19bf2c4553aa7e7f27ff2a1b3b2e2db62c (diff)
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
Diffstat (limited to 'CodeGen/CodeGenModule.cpp')
-rw-r--r--CodeGen/CodeGenModule.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/CodeGen/CodeGenModule.cpp b/CodeGen/CodeGenModule.cpp
index 47a0081b7b..2df1877e79 100644
--- a/CodeGen/CodeGenModule.cpp
+++ b/CodeGen/CodeGenModule.cpp
@@ -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;