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

llvm-svn: 44968
This commit is contained in:
Chris Lattner 2007-12-13 00:38:03 +00:00
parent ce8d55b087
commit 70efff25be
1 changed files with 6 additions and 4 deletions

View 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;