Remove the function attr cache for intrinsics. This does not maintain the

refcount on these correctly, and can end up referring to deleted 
attributes.  This fixes PR1881.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45525 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2008-01-03 01:20:12 +00:00
parent 89e94bd00c
commit 50cffa0107

View File

@ -325,11 +325,6 @@ const FunctionType *Intrinsic::getType(ID id, const Type **Tys,
}
const ParamAttrsList *Intrinsic::getParamAttrs(ID id) {
static const ParamAttrsList *IntrinsicAttributes[Intrinsic::num_intrinsics];
if (IntrinsicAttributes[id])
return IntrinsicAttributes[id];
ParamAttrsVector Attrs;
uint16_t Attr = ParamAttr::None;
@ -341,8 +336,7 @@ const ParamAttrsList *Intrinsic::getParamAttrs(ID id) {
Attr |= ParamAttr::NoUnwind;
Attrs.push_back(ParamAttrsWithIndex::get(0, Attr));
IntrinsicAttributes[id] = ParamAttrsList::get(Attrs);
return IntrinsicAttributes[id];
return ParamAttrsList::get(Attrs);
}
Function *Intrinsic::getDeclaration(Module *M, ID id, const Type **Tys,