mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-07 11:33:44 +00:00
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:
parent
89e94bd00c
commit
50cffa0107
@ -325,11 +325,6 @@ const FunctionType *Intrinsic::getType(ID id, const Type **Tys,
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ParamAttrsList *Intrinsic::getParamAttrs(ID id) {
|
const ParamAttrsList *Intrinsic::getParamAttrs(ID id) {
|
||||||
static const ParamAttrsList *IntrinsicAttributes[Intrinsic::num_intrinsics];
|
|
||||||
|
|
||||||
if (IntrinsicAttributes[id])
|
|
||||||
return IntrinsicAttributes[id];
|
|
||||||
|
|
||||||
ParamAttrsVector Attrs;
|
ParamAttrsVector Attrs;
|
||||||
uint16_t Attr = ParamAttr::None;
|
uint16_t Attr = ParamAttr::None;
|
||||||
|
|
||||||
@ -341,8 +336,7 @@ const ParamAttrsList *Intrinsic::getParamAttrs(ID id) {
|
|||||||
Attr |= ParamAttr::NoUnwind;
|
Attr |= ParamAttr::NoUnwind;
|
||||||
|
|
||||||
Attrs.push_back(ParamAttrsWithIndex::get(0, Attr));
|
Attrs.push_back(ParamAttrsWithIndex::get(0, Attr));
|
||||||
IntrinsicAttributes[id] = ParamAttrsList::get(Attrs);
|
return ParamAttrsList::get(Attrs);
|
||||||
return IntrinsicAttributes[id];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Function *Intrinsic::getDeclaration(Module *M, ID id, const Type **Tys,
|
Function *Intrinsic::getDeclaration(Module *M, ID id, const Type **Tys,
|
||||||
|
Loading…
Reference in New Issue
Block a user